我有一个像"${f1}:blah blah ${f2} blah ${f1}"
这样的字符串。我有Map<String, String>
"f1"
,"f2"
作为键。
我想将字符串中的"${f1}"
,"${f2}"
等替换为地图中给出的相应值。
我如何用Java做到这一点?我几乎没有使用Java正则表达式的经验。
答案 0 :(得分:0)
尝试这个
for (Entry<String, String> e : map.entrySet()) {
String test="${f1}:blah blah ${f2} blah ${f1}";
System.out.println(test.replace("${f2}", e.getValue()).replace("${f1}", e.getKey()));
}
答案 1 :(得分:0)
你可以这样做
String str = "${f1}:blah blah ${f2} blah ${f1}";
Map<String, String> map = new HashMap<String, String>();
map.put("\\$\\{f1\\}", "xxxx");
map.put("\\$\\{f2\\}", "yyyy");
for (Map.Entry entry: map.entrySet()) {
str = str.replaceAll((String)entry.getKey(), (String)entry.getValue());
}
System.out.println(str);
输出结果为:
xxxx:blah blah yyyy blah xxxx
答案 2 :(得分:-2)
此类问题已在SO上提出过。你需要看到THIS。