gpt4 book ai didi

java - 每行中具有多个动态长度字符串的字符串格式(左右填充)

转载 作者:行者123 更新时间:2023-11-30 04:55:22 25 4
gpt4 key购买 nike

我正在编写一个程序,并陷入以下要求:

输出到固定格式文件

     Total 1                   Total 2
---------------- ----------------
311,862.33 23,456.00
40,000.00 789,123.00

如上例所示,金额字符串的长度有所不同。

要求金额应始终从“连字符”末尾开始。

如何实现这一目标?

我知道字符串的左右填充可以通过以下方式实现:

String.format("%1$#20s", "311,862.33");
String.format("%1$-15s", "12345");

但是在我的情况下,每行都有多个字符串并且字符串长度是动态的,如何实现?

发现下面的代码将金额格式化为单列。但是如何对多列(即同一行中的多个金额)实现相同的效果?

String format = "%10.2f\n"; // width == 10 and 2 digits after the dot
float [] floats = {123.45f, 99.0f, 23.2f, 45.0f};
for(int i=0; i<floats.length; i++) {
float value = floats[i];
System.out.format(format, value);
}

这将给出输出:

123.45
99.00
23.20
45.00

感谢您的阅读!

最佳答案

我会使用 StringBuilder 并通过跟踪计数器中的行长度来自己添加填充。

这不是最快或简洁的方法,但它确实提供了更好的可读性和透明度。如果代码路径很热,JIT 可能会优化此类指令。

关于java - 每行中具有多个动态长度字符串的字符串格式(左右填充),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741286/

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