2017-06-17 69 views
-4

我知道問題在於命令行,但我已經試過每種方法來找到解決方法,但我完全不知道如何修復數組以使其不是零。我對數組仍然很陌生,並且在我的教科書中處處查看如何執行此操作,但唯一的示例不包含數組。Java Array中的錯誤

這是我得到的錯誤。

我使用Netbean

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
at arraysize.Arraysize.main(Arraysize.java:20) 

這裏是我的代碼以及

package arraysize; 



public class Arraysize { 


public static void main(String[] args) { 
    int[] array = new int[ 10 ]; 
    for (int counter = 0; counter < array.length; counter++) 
    array[counter] = Integer.parseInt(args[counter]); 
    System.out.printf("%s%8s\n", "Index", "Value"); 

    for (int counter = 0; counter < array.length; counter++) 
     System.out.printf("%5d%8d\n", counter, array[counter]); 


} 

} 
+0

這是for循環之後的{}嗎? –

+0

從命令行傳遞的輸入是什麼? – Ravi

+2

我會假設這是因爲你沒有傳遞任何命令行參數。 –

回答

0

那是因爲你輸入args數組長度小於array長度,在那一刻你迭代到第 array[counter] = Integer.parseInt(args[counter]); 並在瞬間counter變量超過args長度你得到例外,爲了解決這個問題你需要 pass args數組長度爲10或更多。要檢查args數組參數,您可以將它的大小傳遞給控制檯:

public static void main(String[] args) { 
     System.out.printf("arguments array size is: %d", args.length); 
     //your code 
}