我想将此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
答案 0 :(得分:1)
=
不是“单词字符”([a-zA-Z_0-9]
),因此\\W+
将其视为“不是单词”并忽略它。
请参阅:http://docs.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
编辑添加:所以答案是......使用一个集并添加它。 [=\\s\\W]+