Java 计算二维数组中元素周围的非空元素数,并将该数指定给该位置的元素
这是代码的一部分,我想分配网格中元素周围出现的“X”的数量。例如,如果网格[2][2]上的元素周围有3个“X”,则程序将计算X的数量并将该值分配给计数器1,我将存储这些值以供进一步使用。我正在计算不在边中的值,因此I>0&J>0。由于索引超出范围,我收到一个错误 请帮助我,我是一个新手程序员,所以如果我犯了一个愚蠢的错误,请原谅我 多谢各位Java 计算二维数组中元素周围的非空元素数,并将该数指定给该位置的元素,java,arrays,Java,Arrays,这是代码的一部分,我想分配网格中元素周围出现的“X”的数量。例如,如果网格[2][2]上的元素周围有3个“X”,则程序将计算X的数量并将该值分配给计数器1,我将存储这些值以供进一步使用。我正在计算不在边中的值,因此I>0&J>0。由于索引超出范围,我收到一个错误 请帮助我,我是一个新手程序员,所以如果我犯了一个愚蠢的错误,请原谅我 多谢各位 int counter1 = 0; for(int i = 0;i<grid.length;i++){ for (int j = 0;j<
int counter1 = 0;
for(int i = 0;i<grid.length;i++){
for (int j = 0;j<grid.length;j++){
//checking if it is not in the edge of grid and it doesnot contain "X"
if (grid[i][j] != "X" && i >0 && j>0) {
for(int x = i-1; x <= i+1;x++){
for (int y = j-1;y <= j+1;y++){
if (grid[x][y] == "X")
counter1++;
}
}
//Calculating the number of X's around the element in array and assigning
//that value to string in that place
System.out.println("Counter1 = "+ counter1);
grid[i][j] = String.valueOf(counter1);
counter1 = 0;
}
}
}
int计数器1=0;
对于(int i=0;i0){
对于(int x=i-1;x)将“if(grid[i][j]!=”x“&&i>0&&j>0”更改为“if(i>0&&j>0&&grid[i][j]!=”x“)。原因在检查i和j的值之前,您正在尝试访问网格。因此,将索引抛出异常。更改检查顺序不会更改任何内容异常仍然存在…找出抛出异常的语句。放置try-catch块并打印错误