Java 字符串替换不起作用

2022-09-02 22:53:58
String delimiter = "\\*\\*";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Entry<String, String> entry : mp.entrySet()) {
  html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}

这通常应该替换这两个字符串,但事实并非如此。有人有想法吗?


答案 1

String 是不可变的,这意味着 html 引用不会更改,而是 replace 方法返回必须分配的新 String 对象。

html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());

答案 2

replace 方法返回其结果,您将丢弃该结果。