2009-03-18 16 views
9

Pracuję nad aplikacją J2ME.Logika podzielonego łańcucha w J2ME

Chcę podzielić następujący ciąg na "<br>" & przecinkami:

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

Jak mogę to zrobić?

+0

przepraszam ale jest znacznik br pomiędzy tymi dwoma zapisów – Vikas

+0

Poprawiłem formatowanie więc
jest oczywista. – Eddie

+0

można po prostu użyć 'StringTokenizer' Class – Lucifer

Odpowiedz

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; 
} 

Powyższa metoda pozwoli Ci podzielić ciąg o przekazany separatora, podobnie jak J2EE za String.split(). Najpierw podziel łańcuch na znacznik podziału linii, a następnie zrób to przy każdym przesunięciu zwróconej tablicy dla przecinka ",". np.

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

powinien brzmieć: ' // Pobierz ostatniego węzła if { \t nodes.addElement (original_element); ("" równa (original_element)!). } ' –

+0

Dlaczego powróciłeś do mojej edycji? Występuje błąd - uruchamiam go za pomocą twojego kodu - jeśli ciąg ma postać '' wynikiem będzie '[," "]' - Proszę poprawić! –

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);