假设您有一些表格数据,其中数据长度可能会有所不同,是否有一个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);
答案 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