2017-04-18 55 views
-1

我想在Java中以點(「。」)分割字符串,並且我知道String在Java中的分割函數使用正則表達式,所以我使用someString.split("\.")來轉義特殊字符「。」,但它沒有工作;我試過someString.split("\\."),它工作。爲什麼「 t」在Java String.split中工作,但不是「。」?

我之前用split("\t")來分割字符串與選項卡,它的工作。爲什麼沒有必要跳過像split("\\t")這樣的特殊字符'\t'

+0

@ErwinBolwidt:謝謝你提醒我。這麼多語言,很多*略*不同的規則...... :-) –

+0

查看鏈接的問題的答案的細節,但重新之間的''\。「'和'」\ t「'之間的二分法,這是因爲在字符串文字,'\ .'是無效的轉義序列,而在字符串文字中,'\ t'是一個製表符。由於製表符在正則表達式中並不特殊,因此'split(「\ t」)'在選項卡上分割。爲了將反斜槓傳遞給底層正則表達式(所以你可以轉義'.',因爲它在正則表達式中是特殊的),所以你需要在字符串中有實際的反斜槓,所以當然你必須轉義它('「\ \。「')。 –

回答

1

split函數與實際的String匹配,因此不需要轉義「\ t」,因爲您希望它查找製表符,而不是字符序列「\ t」(其中「\ t」 「會實現)。

相關問題