Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: DonnieDarko2 en 14 Abril 2012, 15:50 PM

Título: Problema con StringTokenizer JAVA
Publicado por: DonnieDarko2 en 14 Abril 2012, 15:50 PM
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:

(http://img254.imageshack.us/img254/9783/sinttulokfd.jpg)

Espero que alguien me pueda ayudar.
Muchas gracias

(Edito para aclarar q la sentencia de return estaba mal, pero ese no es el problema)
Título: Re: Problema con StringTokenizer JAVA
Publicado por: raul_samp en 15 Abril 2012, 03:55 AM
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!