-1

次のコードの値を特定の順序で出力するネストされた for ループを作成しようとしています。

public static void main(String[] args) {

    int[][] array2d = new int[3][5];
    for (int i = 0; i < array2d.length; i++) {
        for (int j = 0; j < array2d[0].length; j++) {
            array2d[i][j] = (i * array2d[0].length) + j + 1;
        }
    }

    for (int x = 0; x <= 4; x++) {
        for (int y = 0; y <= 2; y++) {
            System.out.println(array2d[y][x]);
        }
    }
}

}

現在の配列は希望どおりに印刷されますが、各印刷は別の行に表示されます。

出力(1行)を次のようにしたい:

1 6 11 2 7 12 3 8 13 4 9 14 5 10 15

助けてくれてありがとう。

4

4 に答える 4

1

に置き換えるprintlnprint動作するはずです

于 2013-02-12T21:45:56.337 に答える
1

代わりに使用できますSystem.out.print

System.out.print(array2d[y][x] + " ");
于 2013-02-12T21:46:13.597 に答える
1
String s = "";
for (int i = 0; i < array2d.length; i++) {
    for (int j = 0; j < array2d[i].length; j++) {
        s += array2d[i][j] + " ";
    }
}
System.out.println(s);
于 2013-02-12T21:46:17.460 に答える
0
public static void main(String[] args) {
    int[][] array2d = new int[3][5];
    for (int i = 0; i < array2d.length; i++) {
        for (int j = 0; j < array2d[0].length; j++) {
           array2d[i][j] = (i * array2d[0].length) + j + 1;
        }
    }
    StringBuilder builder = new StringBuilder();
    for (int x = 0; x <= 4; x++) {
        for (int y = 0; y <= 2; y++) {
            builder.append(array2d[y][x]);
            if(!(x == 4 && y == 2)){
                builder.append(" ");
            }
        }
    }
    System.out.println(builder.toString());
}

を変更し、文字列を希望どおりにフォーマットprintlnすることを除いて、基本的には正しかったです。print仕組みを示すために少し変更しましたStringBuilderStringBuilderより便利なので、可能な限り a を使用します。

于 2013-02-12T21:59:58.597 に答える