有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于幻方的java Printf

下面是我的代码:

public void printSquare() {
    for (int row = 0; row < square.length; row++) {
        for (int col = 0; col < square.length; col++) {
            System.out.printf(square[row][col] + "%-3c", ' ');
        }
        System.out.println();   
    }
}

我试着把它们打印成这样:

enter image description here

但我的输出是:

******广场2号*****

30  39  48  1  10  19  28  
38  47  7  9  18  27  29  
46  6  8  17  26  35  37  
5  14  16  25  34  36  45  
13  15  24  33  42  44  4  
21  23  32  41  43  3  12  
22  31  40  49  2  11  20

我已经和printf混在一起有一段时间了,我似乎不知道如何把它打印整齐。我在学校的第二个学期几乎没学过Java,所以我还不太擅长编码。任何建议都会有帮助

如果我的编码是非正统的或者看起来很糟糕,请给我打电话,这样我就可以修复它

多谢各位


共 (2) 个答案

  1. # 1 楼答案

    您可以尝试添加选项卡空间,而不是手动添加空间。制表符空格将处理带有空格的数字问题

    public static void printSquare(int[][] square) {
        for (int row = 0; row < square.length; row++) {
            for (int col = 0; col < square.length; col++) {
                System.out.print(square[row][col]+"\t");
            }
            System.out.println();
        }
    }
    

    输出

    30  39  48  1   10  19  28  
    38  47  7   9   18  27  29  
    46  6   8   17  26  35  37  
    5   14  16  25  34  36  45  
    13  15  24  33  42  44  4   
    21  23  32  41  43  3   12  
    22  31  40  49  2   11  20
    
  2. # 2 楼答案

    要打印正好包含四个字符(用空格填充)的数字,请使用以下格式:

    System.out.printf("%4d", square[row][col]);