Problema con StringTokenizer JAVA

Iniciado por DonnieDarko2, 14 Abril 2012, 15:50 PM

0 Miembros y 1 Visitante están viendo este tema.

DonnieDarko2

Buenas, estoy teniendo problemas a la hora de leer una linea de fichero y trocearla con StringTokenizer. La funcion va leyendo lineas de fichero hasta q llega al final del fichero, trocea dicha linea y extrae los tokens. El problema es que cuando hace la primera llamada a st.nextToken() el valor que me devuelve es el 2º token y no el 1º. Llevo dandole vueltas bastante rato y sigo sin encontrar el problema.

Dejo un screenshot del depurador con los valores que toma para que se entienda mejor:



Espero que alguien me pueda ayudar.
Muchas gracias

(Edito para aclarar q la sentencia de return estaba mal, pero ese no es el problema)

raul_samp

Dos cosas:

1º StringTokenizer es una clase un tanto antigua (que no por eso mala) pero te recomiendo probar cosas como Scanner que son sustancialmente más potentes al tener la modalidad de partir por patrones y demás.

2º Si inicializas el StringTokenizer con StringTokenizer(String str, String delim)
no hace falta que llames a nextToken(String delim); porque ya te lo parte por el delimitador del principio.

Y con esto, y sabiendo que no te he solucionado el problema :D copio del api:

CitarStringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

y tienen mucha razón, con un split lo habrías echo en menos lineas y más claro.

Un saludo!
Yeah Mr. White, yes science!!