문자열을 콤마를 기준으로 분리하는데 " "안에 있는 콤마는 무시하게 할수없나요?

조회수 4876회

예를들어서 foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy" 이런 문자열이 있으면

foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"

이렇게 콤마 별로 쪼개는데 쌍따옴표안에있는 콤마는 무시하고싶어요. 어떻게 할수있을까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    public class Main { 
        public static void main(String[] args) {
            String line = "foo,bar,c;qual=\"baz,blurb\",d;junk=\"quux,syzygy\"";
            String[] tokens = line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1);
            for(String t : tokens) {
                System.out.println("> "+t);
            }
        }
    }
    

    이렇게 하시면

    출력결과:

    > foo
    > bar
    > c;qual="baz,blurb"
    > d;junk="quux,syzygy"
    

    이렇게 나옵니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)