2014-01-26 162 views
-2

我試圖在每個'分割字符串'。' (句點),但句點是java正則表達式使用的符號。示例代碼,Java正則表達式忽略'。'符號

String outstr = "Apis dubli hre. Agro duli demmos,".split("."); 

我不能逃避句點字符,那麼我怎麼讓Java忽略它呢?

+0

我不知道這篇編譯。 'split'返回一個數組。但是要回答你的問題,你需要逃避''.' –

+0

你也可以使用'[。]',因爲這個點在一個字符類中將失去它的意義(正則表達式)。 – HamZa

回答

2

我不能逃避句號,那麼我怎麼讓Java忽略它呢?

您可以跳過句點字符,但必須先考慮字符串是如何解釋的。

在Java字符串(餵食給Pattern.compile(s))...

  • "."是一個正則表達式的意思任何字符
  • "\."是非法轉義的字符串。這不會編譯。然而,作爲文本編輯器中的正則表達式,這是完全合法的,並且意味着文字點
  • "\\."是一個Java字符串,曾解釋爲,成爲正則表達式\.,它又是轉義(文字)點。

你想要的是

String outstr = "Apis dubli hre. Agro duli demmos,".split("\\."); 
+0

哈,謝謝。有時候,Java有點奇怪,它的所有層都是。 – Maurdekye

+0

不客氣:) – aliteralmind

5

改爲使用"\\."。只需使用.表示「任何字符」。