1

文字列を配列に分割する簡単な方法があります。文字以外の文字がある場所で分割します。私が現在使用している回線は次のとおりです。

String[] words = str.split("[^a-zA-Z]");

したがって、これにより、アルファベット文字のみの文字列が分割されます。しかし、問題は、それが分割されたときに一部では機能するが、すべてでは機能しないことです。例えば:

String str = "!!day--yaz!!";
String[] words = str.split("[^a-zA-Z]");
String result = "";

for (int i = 0; i < words.length; i++) {
    result += words[i] + "1 ";
}

return result;

null値でエラーが発生していたため、そこに1を追加して、分割が行われる場所を確認しました。とにかく、このコードを実行すると、次の出力が得られます。

1 1 day1 1 yaz1

最初の 2 つの ! と - の 1 つの後では分割されているのに、最後の 2 つの ! では分割されていないのはなぜですか? なぜそこでさえ分割されているのですか?これに関するどんな助けも素晴らしいでしょう!

4

3 に答える 3

1

余分な分割の一部を取り除きたい場合は、split("[^a-zA-Z]+")代わりに を使用しsplit("[^a-zA-Z]")ます。これは、パターンに一致する の連続部分にString一致します。

于 2013-05-06T15:44:21.250 に答える