2012-11-27 3 views
1

내 마음이 감각이 없거나 어리석은 것인지 확실하지 않지만 어떤 이유인지 모르겠다. 본질적으로 안드로이드 애플 리케이션에서 PHP 스크립트를 통해 CSV 정보를 가져옵니다. 그 내용은 이제 I는 2 개 차원 배열을 설정할문자열 두 번 나누기

value00,value01,value02,value03,value04;value10,value11,value12,value13,value14;value20, etc... 

같이 표시됩니다 여기서 thisArray [0] [0] = value00, thisArray [1] [1] = value11, thisArray [1] [4] = value14 등 내가 가지고있는 코드는 ";" 하지만 그 배열을 2 차원 어레이로 분할하는 방법을 내가 원하는대로 설정하는 방법을 알 수는 없다. 이것은 내가 무엇을 가지고 :

    String[][] secondSplit;// 
      String[] firstSplit;// 
      String currvalue;// 

      firstSplit = httpMessage.split(";"); 
      for(int i=0; i<firstSplit.length; i++) { 
       Log.d("EFFs" + Integer.toString(i),firstSplit[i]); 
      } 

로그 캣은 원하는 동작을 보여줍니다 (httpMessage는 위의 정보가 포함 된 문자열입니다), EFFs0 = 1 호선, EFFs1 = 2 호선, 내가 원하는 방식. 하지만 이제 어떻게하면 두 번째 차원을 얻을 수 있습니까? 또한, 100 % 확신하기 때문에 이것은 다른 질문에 던져 넣을 쉬운 대답으로 바보 같은 질문입니다. 문자열이 숫자인지 쉽게 알 수있는 방법이 있습니까?

답변

7

는 다음을 수행 할 수 있습니다 :

secondSplit = new String[firstSplit.length][]; 
for(int i=0; i<firstSplit.length; i++){ 
secondSplit[i] = firstSplit[i].split(","); 
} 

는 확신이 작동합니다. 그렇지 않으면 알려주세요! 희망이 도움이됩니다! 당신이이 같은 Scanner 클래스가 사용되는 행과 열을 알고있는 경우

+0

+1 처음 이었기 때문에 :) – Alex

+0

+1 나 '때문에 천천히. ;) –

+0

당신은 동시에 어디 에나있을 수 없다;) – Alex

2

(최근 this answer에서이 배운) :

Scanner sc = new Scanner(input).useDelimiter("[,;]"); 
final int M = 5; 
final int N = 2; 
String[][] matrix = new String[M][N]; 
for (int r = 0; r < M; r++) { 
    for (int c = 0; c < N; c++) { 
    matrix[r][c] = sc.next(); 
    } 
} 

//Just to see that it worked  
for(String[] row : matrix) { 
    for(String col : row) { 
    System.out.print(col+","); 
    } 
    System.out.println(); 
} 
+0

답변 해 주셔서 감사합니다. 다른 방법은 더 쉽고 휴대하기가 더 쉽습니다. 그러나 다른 옵션에 대한 교훈을 고맙게 생각합니다. :) –