Stringformatter可以重用参数吗?

时间:2014-01-24 09:52:56

标签: java string

我正在使用String.format创建带参数的格式化字符串。是否有可能告诉格式化程序多次重用一个参数?

String.format(%s FOO %s %s, "test"); //desired output: "test FOO test test"

4 个答案:

答案 0 :(得分:34)

是的,您可以使用$说明符。 $之前的数字表示参数编号,从1开始:

String.format("%1$s FOO %1$s %1$s", "test")

答案 1 :(得分:4)

正如Keppils回答: 当你开始为你的一个参数编号时,你必须对它们进行编号,否则结果将不符合预期。

String.format("Hello %1$s! What a %2$s %1$s!", "world", "wonderful");
// "Hello world! What a wonderful world!"

会奏效。而

String.format("Hello %1$s! What a %s %1$s!", "world", "wonderful");
// "Hello world! What a world world!"

无效。 (但不会抛出任何错误,所以这可能会被忽视。)

答案 2 :(得分:2)

String.format("%1$s FOO %1$s %1$s", "test");

答案 3 :(得分:0)

String.format("%s FOO %<s %<s", "test")