2

假设您有一些表格数据,其中数据长度可能会有所不同,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 之间的空格,但它们是静态的,不会调整以产生我想要的结果。我的印象是 %5s 中的 5 会自动填充 5 个空格

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

1 回答 1

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

这打印:

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
于 2011-09-29T19:59:53.600 回答