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

时间:2011-09-29 19:42:20

标签: java formatter

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

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

columnA    columnB     
1            34.34          
10            34.34
100            34.34          
1000            34.34

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

columnA    columnB     
1            34.34          
10           34.34
100          34.34          
1000         34.34

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

Formatter formatter = new Formatter();
formatter.format("%5s     %5s", columnAdata, columnBdata);

1 个答案:

答案 0 :(得分:7)

这绝对有可能。我所知道的方法是为第一列中的数据配置最小宽度。为此,您希望将 width 属性与 left-justification 结合使用(两者都记录在the 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);

打印:

1          100
10         100
100        100

格式%-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