-1

この文字列を単語に分割したい

"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
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 に答える