17

我对 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()但我想将格式化字符串存储在变量中。

4

3 回答 3

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

Java Howto - 格式化字符串

于 2011-03-30T00:42:39.833 回答
6

对的,这是可能的。该类String包含format()方法,它的工作方式与您期望的一样。例子:

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

在这里您可以了解有关格式化的更多详细信息: 格式化程序语法

于 2011-03-30T00:47:56.257 回答
1

从 JDK 15 开始:

var s = "x:%d, y:%d, z:%d".formatted(x, y, z);
于 2021-01-05T00:48:40.500 回答