我有一个二维字符数组board[row][col]
,用于模拟Xs和Os游戏的游戏板。 (作为参考,数组中的每个元素都是X,O或'',表示该方块中没有移动的空格。)
我试图逐行获取数组中所有字符的字符串。也就是说,第一行将打印到字符串,然后第二行将附加到该字符串,直到遍历所有行。最后,结果应该看起来像一串符号,例如这个游戏板的“XXO X OOX”:
X X O
X
O O X
如何做到这一点?
答案 0 :(得分:4)
尝试:
StringBuilder str = new StringBuilder();
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
str.append(board[i][j]);
您可以找到有关StringBuilder
here的更多数据。
答案 1 :(得分:2)
我认为更好的说法就像这样
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
答案 2 :(得分:1)
您可以尝试以下几点:
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
答案 3 :(得分:0)
嵌套循环如下:
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();
}
第一个print语句将所有字符从一行添加到一行,然后在第二个循环之外的下一个print语句将添加换行符。
答案 4 :(得分:0)
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
}
答案 5 :(得分:0)
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();
}