如何以矩阵格式排列输出?#java

时间:2019-02-24 14:28:44

标签: java arrays

public class array1 {
    public static void main(String args[]) {
        int twod[][] = new int[4][5];
        int i, j, k = 0;
        for (i=0; i < 4; i++) {
            for (j=0; j < 5;j++) {
                twod[i][j] = k;
                k++;
            }  
        }

        for (i=0; i < 4; i++) {
            for (j=0; j < 5;j++) {
                System.out.println(twod[i][j] + " ");
            }
            System.out.println();
        }          
    }
}

有人可以告诉我如何修改代码以获取矩阵格式的输出吗?当我编译该程序时,输出为0到19,它垂直对齐,而不是矩阵格式。有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

要打印值时只使用print(),而实际上要打印后跟换行符时才使用println()

for (i=0; i < 4; i++) {
    for (j=0; j < 5; j++) {
        if (j > 0) System.out.print(" ");
        System.out.print(twod[i][j]);
    }
    // now that a complete row has been printed, go to the next line
    System.out.println();
}

请注意,此答案可能仍会使您看起来有些麻烦,因为数据集中的所有数字并非都具有相同的宽度。我们需要做更多的工作才能将所有内容放入格式正确的列中。

这是使用String.format进行的上述改进之一,其固定字段宽度为5:

for (i=0; i < 4; i++) {
    for (j=0; j < 5; j++) {
        if (j > 0) System.out.print(" ");
        System.out.print(String.format("%5s" , String.valueOf(twod[i][j])));
    }
    System.out.println();
}

这将生成:

    0     1     2     3     4
    5     6     7     8     9
   10    11    12    13    14
   15    16    17    18    19