2014-12-30 2 views
-3

문자열을 2 차원 이중 배열로 변환하고 싶습니다. 내 문자열은 "(- 34.17141334413566, 148.12316894513125), (- 34.371148707267096, 149.0130615234375), (- 34.475366823896806, 147.919921875)"입니다. 결과는 다음과 같습니다 double [3] [3] y = {{-34.17141334413566, 148.1231689453125}, {- 34.371148707267096,149.0130615234375}, {- 34.475366823896806, 147.919921875}} 전 누군가에게 감사드립니다.문자열을 2 차원 이중 배열로 변환합니다.

+1

문자열은 무엇입니까? – Lrrr

+0

제발, 예제 문자열을 제공하고 어떤 결과가 예상됩니다 – rzysia

+0

우리에게 어떻게 말해주십시오 -34.17141334413566, 148.1231689453125 1,2,3로 변환 ?! – Lrrr

답변

0

이 시도 : (STR이 입력)

String str = "(-34.17141334413566, 148.1231689453125)," + 
      "(-34.371148707267096, 149.0130615234375)," + 
      "(-34.475366823896806, 147.919921875)"; 
str = str.replace("(", ""); 
String[] rows = StringUtils.split(str, "),"); 
double[][] doubles = new double[rows.length][StringUtils.split(rows[0], ", ").length]; 
for (int i = 0; i < rows.length; i++) 
{ 
    String[] cols = StringUtils.split(rows[i], ", "); 
    for (int j = 0; j < cols.length; j++) 
    { 
     cols[j] = cols[j].replace(")", ""); 
     doubles[i][j] = Double.parseDouble(cols[j]); 
    } 
} 

적어도 하나의 행 (그것을 확인)이 있는지 확인합니다. StringUtils는 Apache Commons 객체이며 여기에서 JAR 파일을 무료로 가져옵니다. http://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.3.2

+0

한 가지는 편집해야합니다 : String [] rows = StringUtils.split (str, "),"); like String [] rows = StringUtils.split (str, ")")와 같아야합니다. 그렇지 않으면 모든 코드가 정상입니다. 감사합니다. –

0

내가 질문을 이해한다면, 당신은 문자열에서 두 배의 데이터를 변환 할 (텍스트 파일, 스캐너, ...)

당신은 그 다음에 따라 뭔가를 사용할 수 있습니다

Double[] array = new Double[2]; 
String s = "-34.17141334413566, 148.12316894531252"; 

String[] stringArray = s.split(","); 
array[0] = Double.parseDouble(stringArray[0].trim()); 
array[1] = Double.parseDouble(stringArray[1].trim()); 

하는 수 Double.parseDouble (String s)와 그의 예외에주의하십시오.

내가 질문, 미안 이해하지 않은 경우)

편집 : 물론 내 예는 한 차원 배열입니다, 두 번째 차원에 대한 다른 문자 스플리터를 사용합니다.

+0

응답 주셔서 감사합니다 :) –

관련 문제