2009-03-18 12 views
9

Sto sviluppando un'applicazione J2ME.Logica di stringa divisa in J2ME

Voglio dividere la stringa seguente al "<br>" & virgola:

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

Come posso fare questo?

+0

dispiace ma c'è un tag br tra questi due dischi – Vikas

+0

ho fissato la formattazione in modo che il
è evidente. – Eddie

+0

Si può semplicemente utilizzare 'StringTokenizer' Classe – Lucifer

risposta

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

Il metodo di cui sopra vi permetterà di dividere una stringa su separatore passato, molto simile String.split di J2EE(). Quindi, prima dividi la stringa sul tag di interruzione di riga, quindi esegui ogni offset dell'array restituito per la virgola ",". ad es.

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

dovrebbe leggere: ' // ottiene l'ultimo nodo se { \t nodes.addElement (original_element); ("" uguale (original_element)!). } ' –

+0

Perché hai annullato la mia modifica? C'è un bug - ci sono dentro usando il tuo codice - se la stringa ha il formato '' il risultato sarà '[," "]' - Correggi! –

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