web-dev-qa-db-ja.com

複数の区切り文字をJava

文字列内の区切り文字に関して文を分割し、単語の頻度をカウントするにはどうすればよいですか?

 String delimiters = "\t,;.?!-:@[](){}_*/";

私のテキストファイルは:

Billy_Reeves

Smorz

Nationalist_Left_-_Youth

Ancient_Greek_units_of_measurement

Jiuting_(Shanghai_Metro)

Blodgett,_MO

Baekjeong

Matt_Brinkman

National_Vietnam_Veterans_Art_Museum
13
Büşra GÜL

で試す

split("\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\{|\\}|_|\\*|/");

また

複数の区切り文字でString.split()を使用

7
AMB

Splitメソッドは引数として正規表現を受け取るため、複数の区切り文字を使用するには、OR regex演算子または文字クラスを使用して区切られた正規表現を入力する必要があります(区切り文字が単一の場合のみ文字)。

OR演算子を使用:

String delimiters = "\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\{|\\}|_|\\*|/";

文字クラスの使用:

String delimiters = "[-\\t,;.?!:@\\[\\](){}_*/]";

ご覧のとおり、一部の文字は正規表現のメタ文字であるためエスケープする必要があります。

3
aleb2000