Java Formatter类,是否有一种简单的方法来自动填充带空格的列?

Zug*_*dud 2 java formatter

假设您有一些表格数据,其中数据长度可能会有所不同,是否有一个使用Formatter类来自动调整填充?

所以不要这样(注意列A):

columnA    columnB     
1            34.34          
10            34.34
100            34.34          
1000            34.34
Run Code Online (Sandbox Code Playgroud)

你得到这个(注意B栏):

columnA    columnB     
1            34.34          
10           34.34
100          34.34          
1000         34.34
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过这只包含%5s%5s之间的空格,但它们是静态的,不会调整以产生我想要的结果.我认为5%的5s会自动填充5个空格

Formatter formatter = new Formatter();
formatter.format("%5s     %5s", columnAdata, columnBdata);
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

这绝对是可能的.我所知道的方法是为第一列中的数据配置最小宽度.为此,您希望将width属性与左对齐结合使用(两者都记录在Javadoc中).这是一个开始:

System.out.printf("%-10d %d%n", 1, 100);
System.out.printf("%-10d %d%n", 10, 100);
System.out.printf("%-10d %d%n", 100, 100);
Run Code Online (Sandbox Code Playgroud)

这打印:

1          100
10         100
100        100
Run Code Online (Sandbox Code Playgroud)

格式%-10d %d%n可以解释如下:

%-10d: first field

    %: start field
    -: left-justify
   10: output a minimum of 10 characters
    d: format as a decimal integer

%d: second field, using defaults for decimal integer
%n: newline
Run Code Online (Sandbox Code Playgroud)