2009-12-10 5 views
1

나는 형식의 다차원 배열을 나타내는 문자열이 : [[A, A], [B, B]] 문자열

는 다차원 배열에이 문자열을 변환하는 쉬운 방법이 있나요합니다.

그러나 지금은 위의 해결 방법을 찾고 있는데 문자열 자체가 조금 복잡합니다. 임의의 제안 예

[A, A], [B [B]

where A could be "This is a sample text, but could be complicated" 

There is a high possibility that the delimiter comma exists in the text (which will be escaped) 

감사합니다.

답변

2

, 나는 강하게 당신이 JSON 들여다 좋습니다. 이 같은 것들을위한 멋진 형식입니다. 가볍고 읽기 쉽고 휴대가 편리합니다. link에서 예를 들어

, (주 : 공백은 중요하지 않습니다 -이 모두 한 줄에있을 수) :

[ 
    [0, -1, 0], 
    [1, 0, 0], 
    [0, 0, 1] 
] 

JSON이 문자열을 인코딩하는 깨끗하고 안전한 메커니즘을 제공, 너무 . 많은 예제를 보시려면 클릭하십시오.

+0

감사합니다. 그것이 나의 필요를 충족시키는 지 더 자세히 볼 필요가있다. 그것은가는 길과 같습니다. 나는 아직 확실하지 않다. :-) –

+0

매력처럼 작동합니다. –

0

입력 형식은 JSON의 하위 집합처럼 보입니다. 해당 페이지에 나열된 모든 Java JSON 파서는 원하는 것을 수행 할 수 있어야합니다.

0

확인이 샘플 : 당신이 직렬화 된 문자열을 제어 할 수있는 경우

String[] x = 
    Pattern.compile("ian").split(
    "the darwinian devonian explodian chicken"); 
for (int i=0; i<x.length; i++) { 
    System.out.println(i + " \"" + x[i] + "\""); 
0

것은 나는 한 동안 자바를 사용하지 않은,하지만 직접 질문에 대답 자상를 취할 :

String[] myArray = input.split("(?<!\\),\s*\["); 

String[][] myMDArray = new String[myArray.length][]; 

for (int i=0; i<myArray.length; i++) { 
    myArray[i].replaceAll("(?<!\\)[\[\]]", ""); 
    myMDArray[i] = myArray[i].split("(?<!\\),"); 
} 

는 가치가 무엇을 가져가. 제안 된 다른 사람들과 마찬가지로, 적은 노력과 유연성으로이 작업을 수행 할 파서가 있습니다.