3 回答

TA貢獻1848條經驗 獲得超2個贊
如果使用replaceAll
而不是replace
,則可以使用正則表達式。正則表達式將允許您使用\b
來表示單詞邊界。這樣做,您只會替換整個單詞,而不是像您現在所做的那樣替換單詞的一部分。
String?txt2?=?txt.replaceAll("\\bworker\\b",?"working").replaceAll("\\bwork\\b",?"worked");

TA貢獻1780條經驗 獲得超4個贊
如果您想替換整個單詞,請查看邁克爾的回答。如果你想替換一些可能包含在其他詞中的詞而不是再次替換你之前替換的目標詞,你可以嘗試添加這樣的中間步驟:
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 ");
添加回答
舉報