2009-03-18 18 views
9

Estoy desarrollando una aplicación J2ME.Lógica de cadena dividida en J2ME

quiero dividir la cadena siguiente en "<br>" & coma:

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

¿Cómo puedo hacer esto?

+0

sentimos pero hay una etiqueta br entre esos dos registros – Vikas

+0

me fijo el formato de modo que el
es obvio. – Eddie

+0

Simplemente usted puede usar 'StringTokenizer' Clase – Lucifer

Respuesta

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

El método anterior le permitirá dividir una cadena sobre el separador pasado, al igual que String.split de J2EE(). Así que primero divide la cadena en la etiqueta de salto de línea, y luego hazlo en cada desplazamiento de la matriz devuelta para la coma ",". p.

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

Debe decir:' // obtener el último nodo si { \t nodes.addElement (original_element); ("" es igual a (original_element)!). } ' –

+0

¿Por qué revertiste mi edición? Hay un error - me encuentro con su código - si la cadena tiene el formato '' el resultado será '[," "]' - ¡Corrígelo! –

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