Java String不替换为hashmap值

时间:2012-03-29 06:17:03

标签: java string replace hashmap

   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", "");

2 个答案:

答案 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