2017-01-21 3 views
0

에} {에 따라 문자열을 분할하는 방법 :나는이 같은 문자열이 자바

"[{1000, 500, 1}, {1001, 501, 1}, {1002, 501, 2}]" (그것은 단지 숫자, 문자 수 아니에요.)

방법은 세 부분으로 나눌 수 있습니다 : {1000, 500, 1} {1001, 501, 1} {1002, 501, 2}

2 단계 : 분할 예를 들어, 자신의 분야에 각각의 새로운 문자열 {1000, 500, 1}, 1000, 5001.

상황은 나는 시도했다 :

  1. 내가 온라인 검색 및 정규식 및 패턴과 Matcher를 사용하려고하지만 아무도 밖으로 일하지했습니다.
  2. 나는 ,을 기반으로 분할하려고했지만 분명히 형식이 적절하지는 않습니다. 그 사이에 공간이 있습니다. 사전 형식 지정이 필요한 것 같습니다.

어떤 아이디어로주세요. 감사합니다.

당신이 정규식 사용할 수 있습니다
+0

을 다음 분할 쉼표로 배열의 첫 번째 항목에서 첫 번째 문자 ("[")를 제거하고 배열 ("]")의 마지막 항목에서 마지막 문자를 제거한 다음 각 항목을 다시 쉼표로 분리하십시오. 그것은 꽤 복잡하다. – mrogers

+0

문자열입니다. 제게 상기시켜 줘서 고마워요. – FisherCoder

답변

5

: {\\{[0-9, ]+\\}

public static void main(String[] args) { 
    String string = "[{1000, 500, 1}, {1001, 501, 1}, {1002, 501, 2}]"; 
    Matcher m = Pattern.compile("\\{[0-9, ]+\\}").matcher(string); 
    while(m.find()){ 
     System.out.println(m.group()); 
    } 
} 

인쇄 : 내용이 "(") 공백없이 (")"공간을 대체 할 수있는 숫자 만있는 경우

{1000, 500, 1} 
{1001, 501, 1} 
{1002, 501, 2} 
+0

고마워요. 하지만 내 문자열도 문자로 구성 될 수 있으므로 정규 표현식을 "Matcher m = Pattern.compile ("\\ {[0-9a-zA-Z,] + \\} ")으로 수정할 수 있습니다.); "그렇습니까? – FisherCoder

+0

예, 작동합니다. – Malt

관련 문제