我对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()
输出格式化的字符串,但我想将格式化的字符串存储在变量中。
答案 0 :(得分:32)
String s = String.format("x:%d, y:%d, z:%d", x, y, z);
答案 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);