2009-03-18 4 views
9

J2ME 응용 프로그램을 개발 중입니다.J2ME 분할 문자열 논리

내가 "<br>" & 쉼표에서 다음 문자열을 분할 할

:

3,toothpaste,2<br>4,toothbrush,3 

나는이 어떻게 할 수

?

+0

죄송하지만
분명 그래서 나는 형식을 고정 – Vikas

+0

두 기록 사이에서 BR 태그가있다. – Eddie

+0

당신은 단순히 읽어야'StringTokenizer' 클래스 – Lucifer

답변

18
private String[] split(String original,String separator) { 
    Vector nodes = new Vector(); 
    // Parse nodes into vector 
    int index = original.indexOf(separator); 
    while(index >= 0) { 
     nodes.addElement(original.substring(0, index)); 
     original = original.substring(index+separator.length()); 
     index = original.indexOf(separator); 
    } 
    // Get the last node 
    nodes.addElement(original); 

    // Create split string array 
    String[] result = new String[ nodes.size() ]; 
    if(nodes.size() > 0) { 
     for(int loop = 0; loop < nodes.size(); loop++) 
     { 
      result[loop] = (String)nodes.elementAt(loop); 
      System.out.println(result[loop]); 
     } 

    } 
    return result; 
} 

위의 방법을 사용하면 J2EE의 String.split()과 마찬가지로 전달 된 구분 기호에 대한 문자열을 분할 할 수 있습니다. 따라서 먼저 줄 바꿈 태그에서 문자열을 분리 한 다음 ","쉼표에 대해 반환 된 배열의 각 오프셋에서 수행하십시오. 예 :

String[] lines = this.split(myString,"<br>"); 
for(int i = 0; i < lines.length; i++) 
{ 
     String[] splitStr = this.split(lines[i],","); 
     System.out.println(splitStr[0] + " " + splitStr[1] + " " + splitStr[2]);  
} 
+0

를 사용할 수 있습니다 는'// 마지막 노드 경우를 얻기 { \t nodes.addElement (original_element) (""동일 (original_element)!.) } ' –

+0

왜 내 편집 내용을 되돌리셨습니까? 버그가 있습니다 - 코드를 사용하여 실행합니다 - 문자열의 형식이 ''이면 결과는 [, "]'입니다 - 정정하십시오! –

1
private String[] split(String original, String separator, int count) 
{ 
    String[] result; 
    int index = original.indexOf(separator); 
    if(index >= 0) 
     result = split(original.substring(index + separator.length()), separator, count + 1); 
    else 
    { 
     result = new String[count + 1]; 
     index = original.length(); 
    } 
    result[count] = original.substring(0, index); 
    return result; 
} 

String[] lines = this.split(myString,"<br>",0);