Java Formatter 类,有没有一种简单的方法可以自动用空格填充列?

发布于 2024-12-07 00:32:48 字数 616 浏览 0 评论 0原文

假设您有一些数据长度可能变化的表格数据,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);

Say you have some tabular data where the datas length can vary, is there a provision with the Formatter class to auto adjust the padding?

So instead of this (note column A):

columnA    columnB     
1            34.34          
10            34.34
100            34.34          
1000            34.34

You get this (note column B):

columnA    columnB     
1            34.34          
10           34.34
100          34.34          
1000         34.34

Thus far, i've tried this which only simply includes the spaces between %5s %5s, but they are static and do not adjust to produce the results I want. I was under the impression that the 5 in %5s would auto pad 5 spaces

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吹梦到西洲 2024-12-14 00:32:48

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

It's definitely possible. The way I know off-hand is to configure a minimum width for data in your first column. To do this you want to make use of the width attribute in conjunction with left-justification (both documented in the Javadoc). Here's a start for you:

System.out.printf("%-10d %d%n", 1, 100);
System.out.printf("%-10d %d%n", 10, 100);
System.out.printf("%-10d %d%n", 100, 100);

This prints:

1          100
10         100
100        100

The format %-10d %d%n can be explained as follows:

%-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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文