gpt4 book ai didi

java - 格式化输出以具有相同的列数

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:42 24 4
gpt4 key购买 nike

我想创建这样的东西,其中每一行都被“管道”字符包围。

| First Line |
| 100 200 |
| 1000 2000 |
  • 在第一行中,右填充为 1 个空格。
  • 在第二行中,右填充为 4 个空格。
  • 第三行是2个空格。

我正在尝试通过 printf + 格式化(而不是显式计算填充数)来完成此操作,但我在格式化语法方面遇到了一些问题。这是我当前的代码:

System.out.printf("| FIRST LINE" + "%50s\n", "|");
System.out.printf("| 100 200" + "%50s", "|");
System.out.printf("| 1000 2000" + "%50s", "|");

我试图表明每行的最大值为 50 个字符,即该行中的第一个字符为“管道”,该行中的最后一个字符为另一个“管道”)。

问题是 50 个空格的放置没有考虑左侧部分中已经使用的字符(即“| FIRST LINE”)。上面的代码类似于:

System.out.format("%s %50s\n", "| FIRST LINE", "|");

那么,如何定义输出格式,以便将两个字符串的宽度都考虑在内?

提前致谢。

最佳答案

尝试 Formatter .

例如

StringBuffer sb = new StringBuffer();
Formatter f = new Formatter(sb, Locale.getDefault());
f.format("| %-50s |%n", "FIRST LINE");
f.format("| %-50s |%n", "200 100");
f.format("| %-50s |%n", "1000 2000");
String finalResult = sb.toString();
System.out.println(finalResult);

输出:

| FIRST LINE                                         || 200 100                                            || 1000 2000                                          |

关于java - 格式化输出以具有相同的列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com