알아보자
459
2018-04-17 16:59:20
9
456

자바 문자열 자르기


문자열 자르기 중에서

특정문자 뒤의 문자를 기준으로 자르는 방법 없나요?

예를 들어

[이름1,이름2,이름3], [이름4,이름5,이름6] 이렇게 있으면

"]" 이 문자 뒤의 "," 로 잘라서 자르면

이름1,이름2,이름3

이름4,이름5,이름6

이렇게 하고 싶은데 어떻게 하나요?

0
0
  • 답변 9

  • 춤과파티
    635
    2018-04-17 17:00:47 작성 2018-04-17 17:01:03 수정됨

    "," 문자가 지금 이름1 과 이름2 사이에도 ","가 있고

    ] 와 [  사이에도 "," 가 있는데 한번에는 못가르겠네요 ㅎㅎ

    갈랐다가 다시 합치거나 하면 모를까,,

    0
  • ilcake
    869
    2018-04-17 17:15:37

    자료가 항상 저런식으로 나오냐 어떤 변형이 있을 수 있는가에 따라서 해결책이 많이 달라지겠지만

    저렇게 정렬해서 줄넘김 하는게 목적이면

    [\[\]] 얘네 없애고나서 ,로 스플릿해서 가운데에 줄넘김을 껴주던가

    \]\,\[ 를 줄넘김으로 바꾸고나서 \[|\] 를 블랭크 변환하겠습니다.

    0
  • 무명소졸
    5k
    2018-04-17 17:17:42 작성 2018-04-17 17:18:06 수정됨

    자바 인거죠 ?

    String test = "[이름1,이름2,이름3], [이름4,이름5,이름6], [이름4,이름5,이름6]";
    
            String[] split = test.split("(?<=]),");
    
            for (String s : split) {
                System.out.println(s);
            }


    후방탐색을 이용한 정규식인데 자바,PCRE 등은 되고 자바스크립트는 안되요


    0
  • 알아보자
    459
    2018-04-17 17:22:03

    정보들 감사합니다


    0
  • 알아보자
    459
    2018-04-17 17:49:01

    혹시 

    test문자열이 밑에 처럼 ,앞에 숫자나 글자가 들어가면 어떻게 처리하나요?

    String test = "[이름1,이름2,이름3] 1234, [이름4,이름5,이름6] 5678, [이름4,이름5,이름6] 9012";
    
            String[] split = test.split("(?<=]),");
    
            for (String s : split) {
                System.out.println(s);
            }
    0
  • 무명소졸
    5k
    2018-04-17 18:06:01

    레알

    숫자나 글자도 포함해서 잘라야 되나요?


    첫번째 인덱스의 값이 

    [이름1,이름2,이름3] 1234   인지 아니면 [이름1,이름2,이름3]  숫자를 제외하고 들어가야 되는지


    0
  • ilcake
    869
    2018-04-17 18:06:44 작성 2018-04-17 18:22:40 수정됨

    레알 계속 형태가 이상하게 변하고있지만 굳이 하자면

    뒤를 보고 자르면 좋겠져

    , ?(?=\[)

    좀더 정확하게 잡으려면 (?<=\w), (?=\[)

    도 가능하겠네요.;/

    0
  • 춤과파티
    635
    2018-04-18 09:24:00

    정규식쓰면 스플릿한번에 되나보네용

    0
  • 알아보자
    459
    2018-04-18 10:05:34

     무명소졸


    String test = "[이름1,이름2,이름3] 1234, [이름4,이름5,이름6] 5678, [이름4,이름5,이름6] 9012";
    
            String[] split = test.split("(?<=]) [0-9][0-9][0-9][0-9],");
    
            for (String s : split) {
                System.out.println(s);
            }



    이런 식으로 해결했습니다



     



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.