2012-12-16 55 views
-1

欲拆分此字符串單詞分裂串具有多個分離器

「公共靜態9掃描儀輸入=新掃描儀(System.in);」

問題是當我運行我的程序後輸入的單詞是「」或空格,下一個單詞是新的。這似乎是這樣的:

Kata 1 = public 
Kata 2 = static 
Kata 3 = 9 
Kata 4 = Scanner 
Kata 5 = input 
Kata 6 = 
Kata 7 = new 
Kata 8 = Scanner 
Kata 9 = System 

我要的是「輸入」後直接就是「新」。這裏是我的代碼:

int index=0; 
String kata [] = kalimat.split("\\s+|\\W+"); 
System.out.println("\nKata dalam kalimat : "); 
for (String s:kata){ 
    System.out.println("Kata "+(index+1)+" = "+s); 
    index++; 
} 
System.out.println("Jumlah kata : " + kata.length); 

我知道這個問題是分隔符,我用.split()

我想結果應該是:

Kata 1 = public 
Kata 2 = static 
Kata 3 = 9 
Kata 4 = Scanner 
Kata 5 = input 
Kata 6 = new 
Kata 7 = Scanner 
Kata 8 = System 
+0

只是由空白和任何不需要的特殊字符分割 – Smit

+0

@smit這是我的字符串「公共靜態9掃描儀輸入=新掃描儀(System.in);」 – husnul

+0

我誤解了它。我認爲它的一段代碼 – Smit

回答

1

=不是「單詞字符」([a-zA-Z_0-9]),所以\\W+將其視爲「不是一個單詞」而忽略它。

參見:http://docs.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html

編輯補充:所以答案是...使用一組,並添加它。 [=\\s\\W]+

+0

是的,我知道。但是,你能否給我建議我應該使用什麼分隔符。 – husnul

+0

可能是你可以使用相同的邏輯如上和和從數組中刪除空值等提到[這裏](http://stackoverflow.com/questions/4150233/remove-null-value-from-string-array- in-java) – Jayamohan

+0

是的。謝謝,它絕對適合我 – husnul