如何用Java漂亮地打印3D数组

问题描述 投票:0回答:1

我有一个三维整数数组,并希望以这种格式漂亮地打印它:

[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]

[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]

[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]
[n,n,n] [n,n,n] [n,n,n]

我尝试使用下面的代码,但由于第二列和第三列必须追加到与第一列相同的行,所以打印不正确:

int[][][] table = {
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}},
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}},
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}}
};

public String toString() {
    String s = "";

    for (int i = 0; i < table.length; i++) {
        for (int j = 0; j < table[i].length; j++) {
            for (int k = 0; k < table[i][j].length; k++) {
                if (k == 2 || k == 5) {
                    s += table[i][j][k] + "\n";
                } else {
                    s += table[i][j][k] + "";
                }
            }
            s += "\n\n";
        }
        s += "\n";
    }

    return s;
}
java arrays multidimensional-array pretty-print
1个回答
0
投票

如果您是第一次将/ n替换为/ t,则您的解决方案正在工作:

int[][][] table = {
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}},
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}},
    {{1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}, {1, 2, 3, 4, 5, 6, 7, 8, 9}}
};

public String toString() {
    String s = "";

    for (int i = 0; i < table.length; i++) {
        for (int j = 0; j < table[i].length; j++) {
            for (int k = 0; k < table[i][j].length; k++) {
                if (k == 2 || k == 5) {
                    s += table[i][j][k] + "\t";
                } else {
                    s += table[i][j][k] + "";
                }
            }
            s += "\n\n";
        }
        s += "\n";
    }

    return s;
}
© www.soinside.com 2019 - 2024. All rights reserved.