拆分多个分隔符的字符串

时间:2012-12-16 07:50:07

标签: java string word

我想将此String拆分为单词

  

“public static 9 Scanner input = new Scanner(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

1 个答案:

答案 0 :(得分:1)

=不是“单词字符”([a-zA-Z_0-9]),因此\\W+将其视为“不是单词”并忽略它。

请参阅:http://docs.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html

编辑添加:所以答案是......使用一个集并添加它。 [=\\s\\W]+