Manipulación de subcadenas en una cadena

Hola
De nuevo yo, mira lo que estoy haciendo es un programa k lea una cadena y cuente cuantas subcadenas existen a paertir de un delimitador, ya lo pude hacer, pero ahora quiero k a partir de donde encontro la nueva subcadena se guarde en una nueva;
Por ejemplo:
cadena inicial es :" 2008-09-29 16:27:50 >$GPGGA,162816.000,1916.1934,N,09828.3969,W,1,11,0.9,2330.5,M,0.0,M,0.0,0000*6A"
el delimitador es = >
Y me muestra lo siguiente;
2008-09-29 16:27:50
$GPGGA....
y pretendo guardar en una nueva cadena lo siguinte:
$GPGGA..., es decir a partir de token 2
el codigo es:

import java.util.StringTokenizer;
import java.util.*;
class ejemplo2{
public static void main( String args[] ) {
String cadena2;
String cadena="2008-09-29 16:27:50 >$GPGGA,162816.000,1916.1934,N,09828.3969,W,1,11,0.9,2330.5,M,0.0,M,0.0,0000*6A";
int a;
StringTokenizer st = new StringTokenizer( cadena,">" );
while(st.hasMoreTokens()){
a= st.countTokens();
System.out.println(st.nextToken()+"\n");
if(a = = 2)
{
cadena 2 = st.nextToken();
System.out.println( cadena2 +"\n"); } }
}
}
pero me sale 2  errors que dice:
1.- ilegal  start of expression
2.- incompatible types
y los dos hacen referencia a :
if(a==2);
Ayuda
Y gracias de antemano

1 respuesta

Respuesta
1
Te propongo la siguiente manera para obtener todos los tokens almacenados como elementos de un arraylist, independientemente del número de tokens:
public void inicio(){
   ArrayList subcadenas = new ArrayList();
   String cadena = "2008-09-29 16:27:50 >#$GPGGA,162816.000,1916.1934,N,09828.3969,W,1,11,0.9,2330>#.5,M,0.0,M,0.0,>#0000*6A";
   String separador = ">#";
   separaTokensRecursivo(cadena, separador, subcadenas);
   for (int i=0; i<subcadenas.size(); i++){
     System.out.println((String)subcadenas.get(i));
   }
}
private void separaTokensRecursivo(String cadena, String separador, ArrayList subcadenas){
   int posicion = cadena.indexOf(separador);
   if (posicion!=-1){
     String substring1 = cadena.substring(0,posicion);
     String substring2 = cadena.substring(posicion + separador.length());
     subcadenas.add(substring1);
     separaTokensRecursivo(substring2, separador, subcadenas);
   }
   else{
     subcadenas.add(cadena);
  }
}
Espero que te sea de utilidad. Un saludo y no olvides valorar mi respuesta:
Carlos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas