我有一个字符串
String constantString="paramesh,ramesh,suresh";
我想用venky代替paramesh,用mahesh代替ramesh,用fine代替suresh,等等,而不会拆分字符串。
输出类似:venky,mahesh,fine etc
答案 0 :(得分:4)
如果您要进行多个替换,则可以将它们存储在Map<String, String>
中,然后使用String.replaceAll(String)
而不是String.replace(String)
,因为对我而言,确保在另一个单词中没有一个单词(< em> paramesh 中的em> ramesh ),则需要带有\b
的正则表达式,这意味着单词绑定,Pattern.quote()
在此处会破坏正则表达式的特殊字符
Map<String, String> replacements = new HashMap<String, String>();
replacements.put("paramesh", "venky");
replacements.put("ramesh", "mahesh");
replacements.put("suresh", "fine");
String constantString="paramesh,ramesh,suresh";
for(Map.Entry<String,String> entry : replacements.entrySet()){
constantString = constantString.replaceAll("\\b" + Pattern.quote(entry.getKey()) + "\\b",
entry.getValue());
}