for (Entry<String, String> entry : map.entrySet()) {
String delimiter = "**";
result = result.replace(delimiter + entry.getKey() + delimiter, entry.getValue());
}
结果是我的字符串被hashmap值替换。 这里string(结果变量)返回本身不替换任何值。 请有人有建议吗?
来自评论
我的hashmap包含,
HashMap<String, String> map = new HashMap<String, String>();
map.put("Rid", serviceBooking.getId().toString());
map.put("Rname", customer.getName());
map.put("Rnic", "");
答案 0 :(得分:0)
您的HashMap
是空的,或者原始字符串中没有包含与地图中的键对应的任何内容,或者您在其中写了两个星号,或者您没有将它们转义为/它们你需要,或者......
如果没有看到原始字符串和地图内容,就无法改进。
答案 1 :(得分:0)
算法OK这是一个可行的可执行示例:
// sample input
String input = "abcd **Rid** efgh";
// a small map
Map<String, String> map = new HashMap<String, String>();
map.put("Rid","VALUE");
// the loop that replaces the **Rid** substring
for (Map.Entry<String,String> entry:map.entrySet()){
input = input.replace("**"+entry.getKey()+"**", entry.getValue());
System.out.println(input);
}
打印
abcd VALUE efgh