我正在使用String.format
创建带参数的格式化字符串。是否有可能告诉格式化程序多次重用一个参数?
String.format(%s FOO %s %s, "test"); //desired output: "test FOO test test"
答案 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")