【发布时间】:2016-03-01 19:50:37
【问题描述】:
格式化字符串时如何设置动态宽度和精度?我知道下面的代码效果很好,但是我们如何以格式化程序的方式来做呢?
int len = 3;
String s = "Andy";
System.out.printf("%1$" + len + "." + len + "s%n", s);
Output:
And
我试过这个。它没有抛出错误,但打印的值与预期不同。 (它看起来很乱,但我试图将“len”传递给宽度和精度。就是这样。:))
System.out.printf("%2$%1$d.%1$ds%n", len, s);
Output:
%1$d.3s
可行吗?如果是这样,我们如何获得与前一个相同的输出?
【问题讨论】:
-
如果有比你的第一个更好的答案,我会感到有点惊讶。
-
@Louis,我理解,但我们通常使用格式化程序来避免字符串连接,而且这看起来更像是再次使用连接。所以放在这里看看有没有更好的办法。
-
我明白了。我通过说“我很确定没有”来回答你的问题。
标签: java string formatting