Pattern オブジェクトの以下のメソッドを使用すると、渡された文字列を、デリミタ文字列(正規表現パターン)を使って分割することができます。
String[] Pattern#split(CharSequence input);
あるいは、String オブジェクトの split
メソッドでも同じことができます。
この場合は、デリミタとして使用する正規表現パターンの方をパラメータで渡すことになります。
String[] String#split(String regex)
String[] String#split(String regex, int limit)
ここでは分割前に、String#trim()
を使用して前後の空白を取り除いています。
String s = " AAA BBB CCC ";
String[] arr = s.trim().split("\\s+");
for (int i = 0; i < arr.length; ++i) {
System.out.println(arr[i]);
}
AAA
BBB
CCC
デリミタとして使用する文字列は、正規表現で指定するので、複数の文字の組み合わせをデリミタとして指定することができます。
ここでは、コロン (:
) やスペースの連なりを、ひとつのデリミタとして処理する例を示します。
// import java.util.regex.Pattern;
String input = "one:two: three four :: five ";
Pattern p = Pattern.compile("[:\\s]+");
String[] arr = p.split(input);
for (String s : arr) {
System.out.println(s);
}
one
two
three
four
five
:
という文字も、 ::
という文字列も、ひとつのデリミタとして扱われています。