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


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

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

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

  • 2016년 02월 04일에 작성됨

조회수 181


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"

이렇게 나옵니다.

  • 2016년 02월 04일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close