Método del escáner nextLine ()

1. Información general

En este tutorial rápido, veremos brevemente el método nextLine () de la clase java.util.Scanner , por supuesto, con un enfoque en aprender a usarlo en la práctica.

2. Scanner.nextLine ()

El método nextLine () de la clase java.util.Scanner escanea desde la posición actual hasta que encuentra un delimitador separador de línea. El método devuelve el String desde la posición actual hasta el final de la línea.

En consecuencia, después de la operación, la posición del escáner se establece al comienzo de la siguiente línea que sigue al delimitador.

El método buscará en los datos de entrada buscando un separador de línea. Puede escanear todos los datos de entrada buscando la línea para omitir si no hay separadores de línea presentes.

La firma del método nextLine () es:

public String nextLine()

El método no toma parámetros. Devuelve la línea actual, excluyendo cualquier separador de línea al final.

Veamos su uso:

try (Scanner scanner = new Scanner("Scanner\nTest\n")) { assertEquals("Scanner", scanner.nextLine()); assertEquals("Test", scanner.nextLine()); }

Como hemos visto, el método devuelve la entrada desde la posición actual del escáner hasta que se encuentra el separador de línea:

try (Scanner scanner = new Scanner("Scanner\n")) { scanner.useDelimiter(""); scanner.next(); assertEquals("canner", scanner.nextLine()); }

En el ejemplo anterior, la llamada a next () devuelve 'S' y avanza la posición del escáner para apuntar a 'c' .

Por lo tanto, cuando llamamos al método nextLine () , devuelve la entrada desde la posición actual del escáner hasta que encuentra un separador de línea.

El método nextLine () arroja dos tipos de excepciones comprobadas.

En primer lugar, cuando no se encuentra un separador de línea, lanza NoSuchElementException :

@Test(expected = NoSuchElementException.class) public void whenReadingLines_thenThrowNoSuchElementException() { try (Scanner scanner = new Scanner("")) { scanner.nextLine(); } }

En segundo lugar, lanza IllegalStateException si el escáner está cerrado:

@Test(expected = IllegalStateException.class) public void whenReadingLines_thenThrowIllegalStateException() { Scanner scanner = new Scanner(""); scanner.close(); scanner.nextLine(); }

3. Conclusión

En este artículo directo, analizamos el método nextLine () de la clase Scanner de Java .

Además, analizamos su uso en un programa Java simple. Finalmente, observamos las excepciones que arroja el método y el código de muestra que lo ilustra.

Como siempre, el código fuente completo de los ejemplos de trabajo está disponible en GitHub.