[英]Java multidimential array out of bounds
我一直在努力填補我的
int[][][] sudoku = new int[5][9][9];
數組與
String[][] tmp = new String[21][21];
tmp[][] 保存數字,如
005700020009600020
490060010140050030
例如,這段代碼完美無缺,它給了我想要的數字
System.out.println(Integer.valueOf(tmp[4][10]));
但是這段代碼
//sudoku1
b=0; c=0;
for (int i = 0; i < 6; i++) {
for (int j = 9; j < 18; j++) {
sudoku[1][b][c] = Integer.valueOf(tmp[i][j]);
c++;
}
b++;
}
拋出“索引 9 超出長度 9 的范圍”錯誤
這是完整的代碼:
public static void main(String[] args) throws IOException {
int[][][] sudoku = new int[5][9][9];
String[][] tmp = new String[21][21];
BufferedReader br = new BufferedReader(new FileReader("src/a.txt"));
String line=br.readLine();
int a=0;
while (line!=null){
String[] larr = line.split("");
for (int i = 0; i < larr.length; i++) {
if (!larr[i].equals("*")) {
tmp[a][i] = larr[i];
} else {
tmp[a][i] = "0";
}
}
line=br.readLine();
a++;
}
// System.out.println(Integer.valueOf(tmp[2][9]));
//sudoku1
int b=0; int c=0;
for (int i = 0; i < 6; i++) {
for (int j = 9; j < 18; j++) {
sudoku[1][b][c] = Integer.valueOf(tmp[i][j]);
c++;
}
b++;
}//sudoku1
}
您在兩個循環之外定義了c
,並在內部循環中每次執行添加 1。 內部循環執行 6*9 次,因此c
甚至可以達到值 54,但是在嘗試使用sudoku[1][b][c]
作為第三個元素的數組索引時,當它達到 9 時會拋出異常多陣列sudoku
go 從 0 到 8。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.