Saltar al contenido

¿Cuál es la diferencia entre los métodos next() y nextLine() de la clase Scanner?

Este equipo de trabajo ha estado horas investigando la resolución a tus dudas, te compartimos la soluciones así que deseamos resultarte de gran ayuda.

Solución:

Siempre prefiero leer la entrada usando nextLine() y luego analizar el string.

Utilizando next() solo devolverá lo que viene antes del delimitador (predeterminado en espacios en blanco). nextLine() automáticamente mueve el escáner hacia abajo después de regresar a la línea actual.

Una herramienta útil para analizar datos de nextLine() sería str.split("\s+").

String data = scanner.nextLine();
String[] pieces = data.split("\s+");
// Parse the pieces

Para obtener más información sobre la clase Scanner o la clase String, consulte los siguientes enlaces.

Escáner: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

Cadena: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

next() puede leer la entrada solo hasta el espacio. No puede leer dos palabras separadas por un espacio. También, next() coloca el cursor en la misma línea después de leer la entrada.

nextLine() lee la entrada, incluido el espacio entre las palabras (es decir, lee hasta el final de la línea) n). Una vez que se lee la entrada, nextLine() coloca el cursor en la línea siguiente.

Para leer toda la línea puedes usar nextLine().

De JavaDoc:

  • A Scanner divide su entrada en tokens usando un patrón delimitador, que por defecto coincide con los espacios en blanco.
  • next(): busca y devuelve el siguiente token completo de este escáner.
  • nextLine(): Avanza este escáner más allá de la línea actual y devuelve la entrada que se omitió.

Así que en caso de "small exampletext"next() debe volver “pequeño” y nextLine() debe devolver “pequeño ejemplo”

Puntuaciones y reseñas

Recuerda algo, que te concedemos agregar una reseña si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *