在Java中更改数组中数组的元素

时间:2016-11-27 22:03:34

标签: 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”,但我的打印功能不打印桌面上的“X”?

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

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

2 个答案:

答案 0 :(得分:2)

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

它打印最后一行,最后一列。请注意您的循环中xy未使用的方式:

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

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

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

答案 1 :(得分:0)

我没能正确使用迭代器。