如何在Java中构建格式化的字符串?

时间:2011-03-30 00:37:45

标签: java string string-interpolation

我对Java有点新,但我不喜欢我在教科书中看到的字符串连接的大量使用。

例如,我想避免这样做:

String s = "x:"+x+"," y:"+y+", z:"+z;

是否可以使用与此类似的符号构建字符串:

String s = new String("x:%d, y:%d, z:%d", x, y, z);

输入

x = 1
y = 2
z = 3

输出

"x:1, y:2, z:3"

注意:我知道我可以使用System.out.printf()输出格式化的字符串,但我想将格式化的字符串存储在变量中。

3 个答案:

答案 0 :(得分:32)

String s = String.format("x:%d, y:%d, z:%d", x, y, z);

Java Howto - Format a string

答案 1 :(得分:5)

是的,有可能。 String类包含format()方法,其工作方式与您预期的一样。 例如:

String s = String.format("x:%d, y:%d, z:%d", x, y, z);

您可以在此处了解有关格式的详细信息: formatter syntax

答案 2 :(得分:0)

自 JDK 15 起:

var s = "x:%d, y:%d, z:%d".formatted(x, y, z);