2013-06-28 46 views
3

我有例如這樣的:在Java中我如何將「空格和點」替換爲「點」?

"hello . world . thanks ." 

,我想會得到:

"hello. world. thanks." 

我有嘗試

text = text.replaceAll(" .","."); 
text = text.replaceAll(" \\.","."); 
text = text.replaceAll(" \\.","\\."); 

但doesn't工作。任何解決方案

謝謝所有

+0

什麼,當你嘗試你? –

+3

請注意,在正則表達式中'[。]'(只包含句點的字符類)消除了'.'的通配符含義,而不需要「轉義」。另外,重置值不是*正則表達式(但[有其他規則](http://docs.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#的replaceAll(java.lang.String中)))。 – user2246674

+0

您的第二條線適合我:''你好,世界。謝謝。「。replaceAll(」\\。「,」。「);' – micha

回答

5

你的第二種方法應該已經工作。

我猜你可能有1對多的空間或製表符.。在你需要使用+量詞來匹配1對多的空間,案前,如果你有他們

text = text.replaceAll("\\s+[.]","."); 

由於.有特殊的意義在正則表達式,你需要使用\\.[.]逃吧這將治療.字面上

\s類似於[ \t\r\n]

3

我建議你不要用String.replaceAll開始。你不需要這裏需要正則表達式,所以爲什麼要讓自己更難?改爲使用String.replace

text = text.replace(" .", ".");