2012-12-20 68 views
1

空字符串我試圖從文件分割文本的話分裂(「[^ 0-9A-ZA-Z] +」)顯示結果

split("[^0-9a-zA-Z]+") 

但也有在結果空字符串。我該如何解決這個問題?

長度|數組中的數字| word | count | %

2 [ 1] to  9 5.56 % 
0 [ 2]   6 3.70 % 
5 [ 3] there  6 3.70 % 
6 [ 4] result  3 1.85 % 
4 [ 5] text   3 1.85 % 
3 [ 6] but  3 1.85 % 

輸出是:

I'm trying to split text from file to words 

split("[^0-9a-zA-Z]+") 
but there are result empty strings too. Is there any solutions to solve this problem? 

3次粘貼

+3

您能給出一個您遇到的問題的例子嗎? – Michael

+2

請提供輸入,你得到什麼以及你期望得到什麼。 –

+0

我甚至不知道如何解析你的最後評論... – NPE

回答

2

對於String.split,傳遞的參數是相匹配的分離器的術語一個正則表達式。分隔符本身被刪除。

由於你的正則表達式是匹配的單詞,你實際上是刪除單詞並留下空白作爲條款。

例如爲:

快速褐色fox

將如下

[The][ ][quick][ ][brown][ ][fox] 
Sep 0 Sep 1 Sep 2 Sep 

導致的三個單空間字符串的數組劈裂。

我猜你的一些單詞並不完全匹配正則表達式,這就是爲什麼你也會在結果中得到一些結果。

解決方案:要麼以相反的方式(myString.split('\\s')看起來像一個好的開始),要麼使用匹配器並迭代,直到它找不到任何東西。

請參閱http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split%28java.lang.String%29