[英]Why do I get a blank output when I try to print ASCII table by array approach in Java?
[英]Why do I get an exception error when I try output an array?
我寫了一個簡單的代碼,應該輸出一個二維數組。 這是代碼:
String month[];
int speedfines[][];
public int speedFines() {
speedfines = new int[3][2];
month = new String[2];
month[0] = "JAN";
month[1] = "FEB";
month[2] = " MAR";
speedfines[0][0] = 128;
speedfines[0][1] = 135;
speedfines[0][2] = 139;
speedfines[1][0] = 155;
speedfines[1][1] = 129;
speedfines[1][2] = 175;
speedfines[2][0] = 129;
speedfines[2][1] = 130;
speedfines[2][2] = 185;
speedfines[3][0] = 195;
speedfines[3][1] = 155;
speedfines[3][2] = 221;
System.out.println(Arrays.toString(speedfines));
return 0;
}
當我運行此代碼時,它在線程錯誤中給了我 java 異常。 我正在使用 netbeans 12.0 並且我的代碼中沒有任何錯誤,但是當我運行時出現異常錯誤錯誤 有人可以向我解釋 java 異常的含義以及如何修復它(如果可能)。
問題是您為數組month
和speedfines
定義的大小。
例如,您將大小2定義為月並嘗試將3 個元素放入其中。 為了您的代碼正常工作,請將數組定義更改為:
speedfines = new int [4][3];
month = new String [3];
-------------------
| | | | ⇒ Size = 3 / month = new String [3]
-------------------
↑ ↑ ↑
0 1 2
你的month
數組應該是:
month = new String[3];
當您將其設置為new String[2]
,您允許數組中有2
項目。
由於您在數組中設置了3
項目:
month[0] = "JAN";
month[1] = "FEB";
month[2] = "MAR";
它引發ArrayIndexOutOfBoundsException
,因為此時索引2
不存在。
此外,您的數組是在函數之外定義的。 將它們移動到函數內。
代碼應該是:
public int speedFines() {
int speedfines[][] = new int[3][2];
String month[] = new String[3];
month[0] = "JAN";
month[1] = "FEB";
month[2] = "MAR";
speedfines[0][0] = 128;
speedfines[0][1] = 135;
speedfines[0][2] = 139;
speedfines[1][0] = 155;
speedfines[1][1] = 129;
speedfines[1][2] = 175;
speedfines[2][0] = 129;
speedfines[2][1] = 130;
speedfines[2][2] = 185;
speedfines[3][0] = 195;
speedfines[3][1] = 155;
speedfines[3][2] = 221;
System.out.println(Arrays.toString(speedfines));
return 0;
}
您在數組 2dimention 中保存了 12 個項目,因此您需要執行此操作speedfines = new int [4][3];
我認為異常名稱是 ArrayIndexOutOfBounds 顯示當您放置數組大小並為其提供大於她的大小的項目時
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.