Java中String的替換函式replace()、replaceAll()、replaceFirst()的區別 && 1678. 設計 Goal 解析器
阿新 • • 發佈:2020-12-07
1678. 設計 Goal 解析器
--解決方法--
“無腦”呼叫函式解決
public String interpret(String command) { return command.replace("()","o").replace("(al)","al"); }
--寫在後面的話--
Java String類下面有3個替換函式:replace() 、replaceAll() 、replaceFirst()
String str = "my.test.txt"; System.out.println(str.replace(".", "#")); System.out.println(str.replaceAll(".", "#")); System.out.println(str.replaceFirst(".", "#"));
結果:
my#test#txt ########### #y.test.txt
原因:
replaceAll() 、replaceFirst()支援正則表示式,而“.”是正則表示式的元字元,匹配除換行符以外的任意字元
replace()不支援正則表示式
很多人可能會誤解replace是替換單個,而replaceAll是替換全部,其實這是錯的(我以前也是這麼想的- -)。
replace只是沒有用到正則表示式,但仍會替換所有匹配的字串。
那麼不想用正則表示式去替換第一個字串腫麼辦?” 其實也很簡單,只要將元字串轉義就行了。
1 s.replaceFirst("\\.", "#")
執行結果:
my#test.txt
參考內容:
https://www.cnblogs.com/jun9207/p/5191857.html