Pretendo mostrar una cadena de texto por palabras. El código es este:
Código:
El caso es que imprime todas las palabras excepto la última, en la que se queda en bucle infinito al llegar al next y, aparentemente, el código es correcto.Scanner sc = new Scanner(System.in); sc = sc.useDelimiter(" "); System.out.println("Introduzca una frase: "); for (int i=0; sc.hasNext(); i++) System.out.println(sc.next()); sc.close();
He investigado y casi todos los ejemplos salen con bucles while y do-while, pero me sigue pasando lo mismo, sin embargo, si pongo una cadena directamente en lugar de leerla de teclado sí que lo hace bien, lo cual me parece bastante raro y "debugeando" no me sale ningún caracter después de los que introduzco :S
Edit: Amplío esto un poco... He probado introduciendo la expresión "\s" en el delimitador (sc.useDelimiter("\\s")) y me imprime todas las palabras pero se sigue quedando en bucle porque sc.hasNext() devuelve siempre cierto, aunque no queda ningún otro elemento.
Sigo esperando ayuda si alguien sabe por qué sucede esto :S
Un saludo y gracias por la ayuda