为了账号安全,请及时绑定邮箱和手机立即绑定

Java字符串替换无法正常工作

Java字符串替换无法正常工作

噜噜哒 2019-07-25 10:29:20
Java字符串替换无法正常工作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());}这应该通常取代这两个字符串,但事实并非如此。有没有人有想法?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

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

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


查看完整回答
反对 回复 2019-07-25
?
萧十郎

TA贡献1815条经验 获得超13个赞

你不需要逃避*角色。replace和之间的区别replaceAllreplace自动转义任何正则表达式元字符:

String delimiter = "**";


查看完整回答
反对 回复 2019-07-25
?
慕的地10843

TA贡献1785条经验 获得超8个赞

比喻:

如果桌面上有不可变文件。要进行一些更改,请执行复制和替换。除非您有备份,否则会导致您无法访问旧文件的状态。

在大多数计算机语言中Java,以同样的方式JavaScriptpython并且C#replace方法不会替换/修改String。它仅对前一个String进行操作,并返回包含所有更改的新String。

现在,如果您确实要存储更改,则需要在同一变量(如果您的情况允许)或新变量中获取返回的String。


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信