【问题标题】:Printf for a Magic Square魔方的 Printf
【发布时间】:2018-02-20 06:37:53
【问题描述】:

所以这是我下面的代码:

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();   
    }
}

我正在尝试将它们打印成如下所示:

但我的输出是:

***** 广场 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,所以我还不太擅长编码。任何建议都会有所帮助。

如果我的编码不正统或看起来很糟糕,请打电话给我,以便我修复它。

谢谢。

【问题讨论】:

  • 如果你的值是到99,如果你的当前值是最低的10,在他前面加一个空格

标签: java printf magic-square


【解决方案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】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多