首页 > Java > java教程 > 为什么我的 Java 字符串替换方法没有更新字符串?

为什么我的 Java 字符串替换方法没有更新字符串?

Linda Hamilton
发布: 2024-11-14 11:48:02
原创
527 人浏览过

Why Isn't My Java String Replace Method Updating the String?

Java 字符串替换方法行为异常

在 Java 中,字符串替换方法是常用的函数,用于将出现的子字符串替换为新字符串。然而,有时用户会遇到替换方法似乎出现故障的情况。

请考虑以下代码片段:

String delimiter = "\*\*";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Entry<String, String> entry : mp.entrySet()) {
  html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}
登录后复制

在此代码中,目标是替换 USERNAME 和 的占位符HTML 字符串中的 PASSWORD 以及提供的地图中的相应值。然而,执行后,原始 HTML 字符串 html 保持不变,导致迷宫ion。

理解问题

要理解这个问题,我们需要记住 Strings在 Java 中是不可变的,这意味着它们不能就地修改。字符串的 Replace 方法返回一个包含修改值的新 String 对象。在我们的代码中,我们没有捕获replace方法的结果并将其分配回原始的html变量。因此,更改不会应用于原始字符串。

解决方案

要解决此问题,我们需要捕获替换方法的结果并将其分配回 html 变量:

html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
登录后复制

通过此修改,代码现在将使用所需的替换值正确更新 html 字符串。

以上是为什么我的 Java 字符串替换方法没有更新字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板