3 回答
TA贡献1848条经验 获得超2个赞
如果使用replaceAll
而不是replace
,则可以使用正则表达式。正则表达式将允许您使用\b
来表示单词边界。这样做,您只会替换整个单词,而不是像您现在所做的那样替换单词的一部分。
String txt2 = txt.replaceAll("\\bworker\\b", "working").replaceAll("\\bwork\\b", "worked");
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");
印刷
在工作场所像真正的工作一样工作
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 ");
添加回答
举报