StringTokenizer
Hola. Tengo que hacer un programa que haga lo siguiente. Me dan un string del tipo <mensaje remitente="remitente" posicion="posicion" destinatario="destinatario" contenido="contenido">. Es obligatorio mantener el orden y los sÃmbolos <>, asà como el orden. Pueden aparecer espacios en blanco entre >< y antes de las variables remitente,etc. Mi programa tiene que comprobar que el string dado está en el orden correcto, y si no lanzar excepciones. Para ello debo partir el string dado utilizando la clase StringTokenizer. Por favor, que alguien me diga como hacerlo. Es urgente.
Hola,
puedes cortar con el tokenizer por los simbolos = .
String miArray[];
StringTokenizer st = new StringTokenizer(miString, "=");
miArray = new String[st.countTokens]
while(st.hasMoreTokens()){
miArray[i] = st.nextToken();
i++;
}
Entonces ya sabes que en cada elemento (menos en el elemento 0), tendras:
miArray[0] = <mensaje remitente
miArray[1] = "remitente" posicion
miArray[2] = "posicion" destinatario
miArray[3] = "destinatario" contenido
miArray[4] = "contenido">
Con estos datos puedes comparar si es igual.
Si te es mas facil, puedes añadir al constructor un tercer argumento 'true', para que te devuelva tambien el delimitador (=).
Saludos,
puedes cortar con el tokenizer por los simbolos = .
String miArray[];
StringTokenizer st = new StringTokenizer(miString, "=");
miArray = new String[st.countTokens]
while(st.hasMoreTokens()){
miArray[i] = st.nextToken();
i++;
}
Entonces ya sabes que en cada elemento (menos en el elemento 0), tendras:
miArray[0] = <mensaje remitente
miArray[1] = "remitente" posicion
miArray[2] = "posicion" destinatario
miArray[3] = "destinatario" contenido
miArray[4] = "contenido">
Con estos datos puedes comparar si es igual.
Si te es mas facil, puedes añadir al constructor un tercer argumento 'true', para que te devuelva tambien el delimitador (=).
Saludos,