Java 字符串替换方法失败 [重复]
某些 Java 实现报告了 Replace() 方法无法充分替换 a 中的特定字符串。给定字符串。这种异常的发生是由于 String 对象的不可变性质。
问题代码分析:
在提供的代码片段中:
pre>字符串分隔符 = "";
字符串 html = "
用户名
AND
密码
";
地图; mp = new HashMap
();
mp.put("USERNAME", "用户 A");mp.put("PASSWORD", "B");
for ( Entry Entry : mp.entrySet()) { html.replace(delimiter entry.getKey() delimiter, entry.getValue());}
问题说明:
Java 中的 Replace() 方法不会改变原始 String 对象。相反,它返回一个应用了替换的新字符串。这就是争论的焦点:原始 html 变量继续保存原始 String 值。
解决方案:
要纠正此问题,应将代码修改为显式使用replace()操作的结果重新分配html变量:
html = html.replace(delimiter entry.getKey() delimiter, entry.getValue());
结论:在使用像 Replace() 这样的方法时,理解 String 对象的不变性至关重要。将返回的 String 对象分配给原始变量可确保预期的替换生效。
以上是为什么我的 Java 字符串 `replace()` 方法似乎不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!