将数组的内容写入字符串

时间:2012-10-16 18:06:16

标签: java arrays string

我有一个二维字符数组board[row][col],用于模拟Xs和Os游戏的游戏板。 (作为参考,数组中的每个元素都是X,O或'',表示该方块中没有移动的空格。)

我试图逐行获取数组中所有字符的字符串。也就是说,第一行将打印到字符串,然后第二行将附加到该字符串,直到遍历所有行。最后,结果应该看起来像一串符号,例如这个游戏板的“XXO X OOX”:

X X O
  X  
O O X

如何做到这一点?

6 个答案:

答案 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();
    }