Java多维数组越界



我一直在尝试填充

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〃的界限;错误

在两个循环外都定义了c,并且在内部循环中每次执行都添加1。内部循环执行6*9次,因此c甚至可以达到值54,但当尝试使用sudoku[1][b][c]时达到9时,它会抛出异常,因为多数组sudoku的第三个元素的数组索引从0变为8。

最新更新