[編輯]顯然,你不知道什麼換人你要尋找的,或者沒有在合理有限的地圖它們。在這種情況下:
Pattern SUBST_Patt = Pattern.compile("\\{(\\w+)\\}");
StringBuilder sb = new StringBuilder(template);
Matcher m = SUBST_Patt.matcher(sb);
int index = 0;
while (m.find(index)) {
String subst = m.group(1);
index = m.start();
//
String replacement = "replacement"; // .. lookup Subst -> Replacement here
sb.replace(index, m.end(), replacement);
index = index + replacement.length();
}
看,我真的很期待+1。
[簡單的方法] String.replace()
是一個「簡單的更換」 &易於使用,爲您的目的;如果你想要正則表達式,你可以使用String.replaceAll()
。
對於多個動態置換:
public String substituteStr (String template, Map<String,String> substs) {
String result = template;
for (Map.Entry<String,String> subst : substs.entrySet()) {
String pattern = "{"+subst.getKey()+"}";
result = result.replace(pattern, subst.getValue());
}
return result;
}
這是快速&簡單的方法,開始。
創建一個獨立的字符串名稱'uploadName」,它串聯到父串 – gauravsapiens 2013-05-02 11:24:01
它不是靜態的字符串,它是動態的字符串,那就是我在掙扎和眨眼的地方 – 2013-05-02 11:26:21
你已經問過這個問題,你爲什麼再問一次? http://stackoverflow.com/questions/16335539/java-split-and-replace-a-string-with-value/16335575#16335575 – Quetzalcoatl 2013-05-02 11:31:06