2014-01-24 19 views
12

我使用String.format來創建帶參數的格式化字符串。是否有可能告訴格式化程序重複使用一個參數多次?可以Stringformatter重用參數嗎?

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

回答

23

是的,你可以使用$符這一點。在$前面的數字表示參數編號,從1開始:

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

Funfact:我今天剛剛搜索了這個,回到我4年前的問題:) – membersound

2
String.format("%1$s FOO %1$s %1$s", "test"); 
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!" 

將無法​​正常工作。 (但不會拋出任何錯誤,所以這可能會被忽視。)