我有一个二维字符数组board[row][col]
,旨在模拟 Xs 和 Os 游戏的游戏板。(作为参考,数组中的每个元素都是 X、O 或 ' ',表示在该方格中没有移动的空格。)
我正在尝试逐行获取数组中所有字符的字符串。也就是说,第一行将打印到字符串,然后第二行将附加到该字符串,直到遍历所有行。最后,结果应该看起来像这个游戏板的一串符号,例如“XXO X OOX”:
X X O
X
O O X
如何才能做到这一点?
尝试:
StringBuilder str = new StringBuilder();
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
str.append(board[i][j]);
你可以找到更多关于StringBuilder
这里的数据。
我认为更好的解决方案是这样的
char [][] board = new char[][]{{'x','x','o',},{'x',},{'o','o','x',}};
StringBuilder builder = new StringBuilder();
for (char[] aBoard : board)
builder.append(String.valueOf(aBoard)).append(" ");
System.out.println(builder.toString());
出去
xxo x oox
您可以尝试以下方法:
char[][] board = {{'X', 'O', 'X'}, {0, 'O', 0}, {'X', 'O', 'X'}};
String s = "";
for (char[] row : board) {
for (char c : row)
s += c == 0 ? " " : c;
s += "\n";
}
System.out.println(s);
输出:
XOX
O
XOX
编辑:如果您希望输出间隔,您可以使用
for (char[] row : board) {
for (char c : row)
s += c == 0 ? " " : c + " ";
s += "\n";
}
输出:
X O X
O
X O X
有这样的嵌套循环:
for (int i = 0; i < board.length; i++)
{
for (int j = 0; j < board[0].length; j++)
{
System.out.print(board[i][j] + " ");
}
System.out.println();
}
第一个打印语句将把一行中的所有字符加在一起,然后在第二个循环之外的下一个打印语句将附加一个换行符。
for(int i=0; i< board.length; i++){
for(int j=0; i< board[i].length; j++){
System.out.print(""+board[i][j]); //<- use print() here
}
System.out.println(); //<- use println() here
}
String[][] board = {{"X", "X","O"},{" ", "X", " "},{"O", "O", "X"}};
for(int i = 0; i < board.length; i++) {
for(int j = 0; j < board[0].length; j++) {
System.out.print(board[i][j] + " ");
}
System.out.println();
}