假设您有一些表格数据,其中数据长度可能会有所不同,是否有一个使用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)
这绝对是可能的.我所知道的方法是为第一列中的数据配置最小宽度.为此,您希望将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)