尝试了两种实现方式,各有优缺点
Topic source//尝试使用appendReplacement()方法,其实现原理和方法二其实是一个意思。
class Replace{
public static String rep(String string,Map<String,String> map){
Pattern p = Pattern.compile("\\$\\{(\\w+?)\\}");
Matcher m = p.matcher(string);
StringBuffer result = new StringBuffer();
while(m.find()){
String match = m.group(1);
m.appendReplacement(result, map.get(match));
}
m.appendTail(result);
return result.toString();
}
}
- 1
よろしく