1. 程式人生 > 實用技巧 >Java中String的替換函式replace()、replaceAll()、replaceFirst()的區別 && 1678. 設計 Goal 解析器

Java中String的替換函式replace()、replaceAll()、replaceFirst()的區別 && 1678. 設計 Goal 解析器

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