打印有序2D阵列 - 单线

时间:2013-02-12 21:41:35

标签: java arrays 2d

我正在尝试编写一个嵌套的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 6 11 2 7 12 3 8 13 4 9 14 5 10 15

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

println替换为print,它应该有效

答案 1 :(得分:1)

您可以改为使用System.out.print

System.out.print(array2d[y][x] + " ");

答案 2 :(得分: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);

答案 3 :(得分: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并根据需要格式化字符串之外,您基本上是正确的。我稍微改了一下,以显示StringBuilder的工作原理。我尽可能使用StringBuilder,因为它更方便。