java - 在 Java 中更改数组内的数组元素

标签 java arrays

我不知道如何更改数组中的数组元素。

public class testOut{

public static void main(String[] args) {

    String board[][] = generate(7,7);

    print(board); // prints a 7x7 table with 49 "O"s

    board[2][2] = "X"; // This is the line I'm concerned about
    System.out.println(board[2][2]); // prints out "X"
    System.out.println(board[1][1]); // prints out "Null"

    print(board); // still prints a 7x7 table with 49 "O"s

}

static String[][] generate(int row, int column){


    String[][] board = new String[row+1][column+1];
    for (int x=0; x < row; x++){

        for (int y=0; y < column; y++){

            board[row][column] = "#";   
        }
    }
        return board;

}

static void print(String[][] board){

    int row = board.length - 1;
    int column = board[0].length - 1;

    for (int x=0; x < row; x++){

        for (int y=0; y < column; y++){
            System.out.print(board[row][column]);
        }
        System.out.println(""); 
    }

}
}

输出:

OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
X
null
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO
OOOOOOO

我正在尝试弄清楚 -

为什么我可以打印“X”,但我的打印功能却无法在 table 上打印“X”?

为什么我的代码能够正确打印出引用每个部分的表格,但是当我尝试打印单个元素时,它给出 null?

我猜这两个问题是相关的。它在 for 循环中工作,但不在循环之外。

最佳答案

阵列正在正确更新。这是你的打印错误。

它正在打印最后一行、最后一列。请注意循环中的 xy 是如何未被使用的:

System.out.print(board[row][column]);

您可以使用循环计数器打印为:

System.out.print(board[x][y]);

关于java - 在 Java 中更改数组内的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834452/

相关文章:

c++ - 就地旋转二维矩形阵列

java - 如何将顶部的 double 转换为 int 舍入

java - jsonrpc 响应中的西里尔字母符号

java - java 类中的点

python - 如何让 Numpy 将每一行/张量视为一个值

Javascript - 对 2 参数对象的数组进行排序

java - 使用 sharedPreferences 的 onPause 和 onResume 方法

java - 使用 Oracle JDBC 的大型结果集,我可以关闭游标获取吗? (获取大小问题)

c - 将动态 3D 矩阵传递给函数

javascript - 防止在数组中添加相同的随机值