[已编辑] 显然您不知道要寻找什么替代品,或者没有合理的有限地图。在这种情况下:
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;
}
这是一种快速简便的方法,首先。