英語版
をあなたはかなり単純なRegexで行うことができる英語版です。私はいくつかのカスタムセパレータを逃したが、していることがあります。
public static int getWordCount(String str) {
return str.split("[\\s,;-]+").length;
}
正規表現の説明:
[
\\s Any whitespace character or
, A comma
; or a semi-colon
]
+ Followed by any patterns in the group any number of times
中国語版
の場合:グループ[]
で任意のを見つけた場合
スプリット中国語版、あなたはセパレータrsはあります。中国の区切り文字のUnicode charコードを取得して上記の正規表現に追加すると、望ましい結果が得られます。
テスト
System.out.println(getWordCount("This is a sentence"));// 4
System.out.println(getWordCount("This is a sentence")); // 4
System.out.println(getWordCount("This is a ,,sentence")); // 4
にある単語間の区切り文字はありますか? –
いいえ、セパレータはありません。私は正確な文字列をコピーしました。 – jaibatrik
その場合、文字列にユニコードのルーンが使用されている言語を見つけようとします。その情報を使用して、文字列の解析方法を決定します。 –