【问题标题】:Multiplication Table Output乘法表输出
【发布时间】:2020-04-18 02:54:24
【问题描述】:

我想知道如何正确对齐此代码?这样它看起来更像一张桌子。在输出中,数字开始向右移动,我不知道如何修复它

public class MultiplicationTable {

    int[][] arr = new int[13][13];

    public void initializeBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                arr[i][j] = i * j;
            }
        }
    }


    public void printBoard()
    {
        for(int i = 1; i < 13; i ++)
        {
            for(int j = 1; j < 13; j++)
            {
                System.out.print(arr[i][j] +"   ");
            }

            System.out.println();
        }

    }

}

【问题讨论】:

    标签: java arrays output


    【解决方案1】:

    使用Scanner#printf() 方法在控制台窗口中显示格式化文本,例如:

    public void printBoard() {
        for (int i = 1; i < 13; i++) {
            for (int j = 1; j < 13; j++) {
                System.out.printf("%-6s", arr[i][j]);
            }
            System.out.println();
        }
    }
    

    控制台应该显示:

    1     2     3     4     5     6     7     8     9     10    11    12    
    2     4     6     8     10    12    14    16    18    20    22    24    
    3     6     9     12    15    18    21    24    27    30    33    36    
    4     8     12    16    20    24    28    32    36    40    44    48    
    5     10    15    20    25    30    35    40    45    50    55    60    
    6     12    18    24    30    36    42    48    54    60    66    72    
    7     14    21    28    35    42    49    56    63    70    77    84    
    8     16    24    32    40    48    56    64    72    80    88    96    
    9     18    27    36    45    54    63    72    81    90    99    108   
    10    20    30    40    50    60    70    80    90    100   110   120   
    11    22    33    44    55    66    77    88    99    110   121   132   
    12    24    36    48    60    72    84    96    108   120   132   144   
    

    【讨论】:

      【解决方案2】:

      您几乎正确地完成了它。我相信像这样对您的printBoard() 方法进行较小的更改应该可以正确输出

      public static void printBoard()
          {
              for(int i = 1; i < 13; i ++)
              {
                  for(int j = 1; j < 13; j++)
                  {
                      if(arr[i][j] >= 100){
                          System.out.print(arr[i][j] +" ");
                      } else if(arr[i][j] >= 10){
                          System.out.print(arr[i][j] +"  ");
                      } else {
                          System.out.print(arr[i][j] +"   ");
                      }
      
                  }
      
                  System.out.println();
              }
      
          }
      

      我得到了这样的输出

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-24
        • 2023-01-20
        • 1970-01-01
        相关资源
        最近更新 更多