如何在控制台输出上对齐String

Moh*_*sal 14 java string console formatter

我要写代码:

乘法表说明:打印小学学校乘法表最多12*12

我写了代码:

public class tables {
    public static void main(String[] args) {
        //int[][] table = new int[12][12];
        String table="";
        for(int i=1; i<13; i++){
            for(int j=1; j<13; j++){
                //table[i-1][j-1] = i*j;
                table+=(i*j)+" ";
            }
            System.out.println(table.trim());
            table="";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但问题在于输出格式.我需要像时尚一样的矩阵输出,每个数字格式化为宽度4(数字是右对齐的,并在每一行上去掉前导/尾随空格).我试过谷歌但没有找到任何解决我的问题的好方法.有人可以帮帮我吗?

Roh*_*ain 37

您可以format()根据需要使用格式化输出.

    for(int i=1; i<13; i++){
        for(int j=1; j<13; j++){

           System.out.format("%5d", i * j);
        }
        System.out.println();  // To move to the next line.
    }
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用: -

System.out.print(String.format("%5d", i * j));
Run Code Online (Sandbox Code Playgroud)

取代System.out.format......

下面是是的解释是如何%5d工作的: -

  • 首先,因为我们正在打印整数,所以我们应该使用%d整数的格式说明符.
  • 5in %5d表示输出的总宽度.所以,如果你的值是5,它将打印到5个空格,如下所示: -****5
  • %5d用于对齐 ..对于左对齐,您可以使用%-5d.对于值5,这将打印输出为: - 5****