-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
4

1 回答 1

1

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

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

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

于 2012-12-16T07:55:50.487 回答