2013-06-28 146 views
0

我正在處理我的任務,即從字典列表和段落中讀入,並計算某段單詞在段落中顯示的次數,所有這些操作都使用LinkedLists和BST。我們已經得到regex命令來分割paragraph.txt文件,命令是"[\\s|\\pPunct]+"這對我不起作用,所以我使用的是[\\s, ?!]+,但是這並沒有做到我想要的所有內容,並且自從正則表達式命令在這門課的摘要之外,我對他們瞭解不多。正則表達式將單詞拆分爲單詞

我正在尋找一個刪除所有句點,逗號和空格的命令。 [\\s, ?!]+做了前兩個,但是,如果我有這條線,例如;

..some line here 

more text here... 

返回的行不會被刪除,我試圖刪除它,當我將每個單詞添加到我的LinkedList中;

public static void insertParagraph(String[] strings) { 
    for(int i = 0; i < strings.length; i++) { 
     if(strings[i] != "" || strings[i] != " " || strings[i] != null) 
      paragraph.insertFirst(strings[i].replaceAll("[^a-zA-Z'\\s]","").toLowerCase()); 
    } 
} 

但是,如果聲明不起作用,任何人有任何建議?

回答

4

方括號表示一個字符類,圓括號表示一個捕獲組。

查看Pattern類來查看預定義的字符類。

"[\\s|\\pPunct]+" // wrong 
"(\\s|\\p{Punct})+" // correct 
+0

謝謝,這似乎做同樣的事情'[\\ S,?!] +',有沒有辦法刪除的返回鍵,不然你就知道它被存儲爲一個數組中? – user123

+1

@ user1327636:你是什麼意思_remove返回key_,你的意思是換行符\ n?它是'\\ s'的一部分,你可以在我上面提供的鏈接中看到。 – jlordo

+0

我不確定如何解釋它,如果你看看OP,有一行文本,然後是空行。你如何刪除該行?例如,如果我在該行中放置空格,我的if語句'strings [i]!=「」'會捕獲它,但否則它不會。 – user123