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()));
Loading script...
codechachaCopyright ©2019 codechacha