-3

board[row][col]X と O のゲームのゲーム ボードをシミュレートするように設計された 2 次元の文字配列があります。(参考までに、配列内の各要素は、X、O、または ' ' のいずれかであり、その正方形で動かないことを示します。)

配列内のすべての文字の文字列を行ごとに取得しようとしています。つまり、すべての行がトラバースされるまで、最初の行が文字列に出力され、次に 2 番目の行がその文字列に追加されます。最終的に、結果はこのゲーム ボードの「XXO X OOX」などの一連の記号のようになります。

X X O
  X  
O O X

これはどのように行うことができますか?

4

6 に答える 6

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 ここでより多くのデータを見つけることができます。

于 2012-10-16T18:10:11.370 に答える
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 
于 2012-10-16T18:13:11.543 に答える
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 
于 2012-10-16T18:11:23.903 に答える
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ステートメントは1つの行のすべての文字を一緒に追加し、次に2番目のループの外側にある次のprintステートメントは改行を追加します。

于 2012-10-16T18:09:37.217 に答える
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
  }
于 2012-10-16T18:10:33.450 に答える
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();
    }
于 2012-10-16T18:12:08.940 に答える