配列内の配列の要素を変更する方法がわかりません。Javaの配列内の配列の要素を変更する
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を与えますか?
私は2つの問題が関連していると推測しています。 forループでは動作しますが、ループの外側では動作しません。
私はあなたの生成メソッドで混乱しています。あなたは本当に同じ参照を複数回割り当てたいだけですか?あなたはそれをボードにしたいですか?[x] [y] = "#";代わりに? –