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

当部分具有共同字符时如何替换字符串的多个部分?

当部分具有共同字符时如何替换字符串的多个部分?

莫回无 2023-03-31 17:17:53
我需要更改单个字符串的几个部分,其中指定的部分有一些共同的字符;例如:工人 => 工作工作 => 工作注意 :: " => "表示"更改为"使用如下代码会产生大量错误:String txt = "work like a real worker"; String txt2 = txt.replace("worker", "working").replace("work", "worked");当我测试上面的代码时,它们输出“像真正的工作一样工作”,但是我需要“像真正的工作一样工作”。
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

如果使用replaceAll而不是replace,则可以使用正则表达式。正则表达式将允许您使用\b来表示单词边界。这样做,您只会替换整个单词,而不是像您现在所做的那样替换单词的一部分。

String txt2 = txt.replaceAll("\\bworker\\b", "working").replaceAll("\\bwork\\b", "worked");



查看完整回答
反对 回复 2023-03-31
?
Helenr

TA贡献1780条经验 获得超3个赞

如果您想替换整个单词,请查看迈克尔的回答。如果你想替换一些可能包含在其他词中的词而不是再次替换你之前替换的目标词,你可以尝试添加这样的中间步骤:


String txt = "work like a real worker in the workplace";

String txt2 = txt.replace("worker", "{$1}").replace("work", "{$2}");

String result = txt2.replace("{$1}", "working").replace("{$2}", "worked");

印刷


在工作场所像真正的工作一样工作


查看完整回答
反对 回复 2023-03-31
?
BIG阳

TA贡献1859条经验 获得超6个赞

问题是,它首先将“worker”替换为“working”,这是正确的,但之后将“working”中的“work”替换为“worked”,结果是“workeding”。


如您所见,“作品”-replacer 也替换了第二个作品,这是不应该的,因为它不是独立的。


为避免这种情况,只需在作品后面留一个空格即可。有了空格,它只会替换一个独立的作品,后面没有任何东西(因为有一个空格将它与下一个单词分开)。


它还将替换空间,因此请确保在工作后也放置一个空间。


它应该是这样的:


String txt = "work like a real worker";

String txt2 = txt.replace("worker", "working").replace("work ", "worked ");


查看完整回答
反对 回复 2023-03-31
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

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