Java - カンマ(,)で区切られた文字列をリストに変換する

カンマ(,)で区切られた文字列をリストに変換する方法を紹介します。

1. split() と正規表現を用いてリストに変換

split(regex) は正規表現に一致するパターンで文字列を分割します。 以下の例で使用されている正規表現 \\s*,\\s* は、コンマ (,) の前、後ろに空白の有無の文字列パターンを意味します。

import java.util.ArrayList;
import java.util.Arrays;

public class Example {

    public static void main(String[] args) {

        String str = "A, B, C, D, E";

        ArrayList<String> myList = new ArrayList<>(Arrays.asList(str.split("\\s*,\\s*")));
        System.out.println(myList);
    }
}

Output:

[A, B, C, D, E]

2. Streamとsplit()を使ってリストに変換

以下のようにStreamとsplit()を使用してリストに変換することもできます。

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Example1 {

    public static void main(String[] args) {

        String str = "A, B, C, D, E";

        List<String> myList = Stream.of(str.split("\\s*,\\s*"))
                .collect(Collectors.toList());
        System.out.println(myList);
    }
}

Output:

[A, B, C, D, E]

もし戻り値が List ではなく、 ArrayList にしたい場合は、以下のように new ArrayList<>() の引数としてリストを渡すだけです。

ArrayList<String> myList = new ArrayList<>(Stream.of(str.split("\\s*,\\s*"))
        .collect(Collectors.toList()));
codechachaCopyright ©2019 codechacha