2013-07-18 174 views
0

我想從文本文件中取出一行並刪除所有標點符號,如逗號,句點,單引號,雙引號等,並將字符串設置爲小寫。我正在使用的代碼是:正則表達式命令執行不正確

inputLine.replaceAll("[^a-zA-Z'\\s]", "").toLowerCase(); 

對我來說,理解會做到這一點,但事實並非如此。它也不會將單詞設置爲小寫。因此,我包括在另一行特異性除去句號和逗號:

inputLine.replaceAll("\\.", ""); 

,然後將每個單詞分割成一個字符串數組:

String[] strings = inputLine.split(" "); 

然而,我仍然結束了詞語如sets,Thereproperties:[1]。有誰知道爲什麼會發生這種情況,或者你能否提供解決方案?我之前沒有做過太多的正則表達式工作,所以這對我來說都是非常新的。

+0

給我們一些'inputLine'包含的樣本和你得到的輸出。 –

+0

歡迎來到SO。在這裏,你應該參加[tour](http://stackoverflow.com/about)。 –

+0

arshajii指出了什麼是錯的,我沒有重新分配字符串,當我使用.replaceAll(..) – user2593573

回答

1

你重新分配inputLine?記住:字符串是不可變的!

inputLine = inputLine.replaceAll("[^a-zA-Z'\\s]", "").toLowerCase(); 

順便說一句,你還可以使用.replaceAll("\\p{Punct}", "")來代替所有的標點符號。

+0

我肯定忘了重新分配inputLine,謝謝指出! – user2593573