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());
萧十郎
TA贡献1815条经验 获得超13个赞
你不需要逃避*
角色。replace
和之间的区别replaceAll
是replace
自动转义任何正则表达式元字符:
String delimiter = "**";
慕的地10843
TA贡献1785条经验 获得超8个赞
比喻:
如果桌面上有不可变文件。要进行一些更改,请执行复制和替换。除非您有备份,否则会导致您无法访问旧文件的状态。
在大多数计算机语言中Java
,以同样的方式JavaScript
,python
并且C#
该replace
方法不会替换/修改String。它仅对前一个String进行操作,并返回包含所有更改的新String。
现在,如果您确实要存储更改,则需要在同一变量(如果您的情况允许)或新变量中获取返回的String。
添加回答
举报
0/150
提交
取消