CodeGym /Blog Java /Random-ES /Método del escáner nextLine() en Java
John Squirrels
Nivel 41
San Francisco

Método del escáner nextLine() en Java

Publicado en el grupo Random-ES
Scanner , una clase del lenguaje de programación Java que puede analizar cadenas y tipos primitivos mediante expresiones regulares. El método de escáner nextLine() en Java mueve este escáner más allá de la línea actual y devuelve la entrada omitida. Más información sobre nextLine() y Scanner más adelante en este artículo.

Brevemente sobre la clase Scanner y cómo funciona

En términos generales, la clase java.util.Scanner le permite leer entradas de varias fuentes, incluida la consola. Realmente se parece a un escáner clásico. Este dispositivo de hardware tiene una arquitectura complicada, pero es bastante sencillo describir su funcionamiento. El escáner lee una fecha que el usuario ingresa, como documentos, y mantiene los datos en la memoria como una imagen o un archivo pdf. El escáner Java, al igual que uno real, lee los datos de la fuente que usted le especifica. Por ejemplo, desde una cadena, desde un archivo, desde una consola. Luego reconoce esta información y la procesa según sea necesario. Por ejemplo, el programa solicita ingresar algunos datos desde la consola y los lee o quiere leerlos de un archivo. Para esta operación, el escáner dispone de varios métodos combinados con la palabra “siguiente”. Como next() , nextLine() , nextInt() , nextDouble() .

método nextLine()

Como dijimos anteriormente, el objeto del escáner divide la entrada en tokens usando el patrón delimitador, espacios en blanco por defecto, pero se puede reemplazar con una cadena (java.lang.String ) o una expresión regular ( java.util.regex. Patrón ). Los tokens resultantes se pueden convertir en valores de varios tipos utilizando varios métodos siguientes. El método Scanner nextLine() en Java hace avanzar este escáner más allá de la línea actual y devuelve la entrada que se omitió. General next() busca y devuelve el siguiente token completo de este escáner. El método nextLine() continúa buscando la entrada para un separador de línea, por lo que puede almacenar en buffer todas las entradas buscando una línea para omitir si no hay separadores de línea. Este método arroja las siguientes excepciones:
  • NoSuchElementException: se lanza si no se encontró ninguna línea
  • IllegalStateException: se produce si este escáner está cerrado

ejemplo de nextLine()

Digamos que queremos que el usuario ingrese cualquier palabra o frase en la consola y podríamos mostrarle qué palabra o frase ingresó.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
La salida puede ser, por ejemplo, la siguiente:
¡Entra cualquier frase y te la repito!... aquí está mi frase aquí está mi frase
Si usa el método next() en lugar de nextLine() , obtendrá solo la primera palabra de su oración.
Introduce cualquier frase y te la repito!... aquí tienes mi frase aquí
Tengamos un ejemplo de un método de escáner nextLine() en funcionamiento para leer un archivo. Para este ejemplo, he creado un archivo de texto myTest.txt. Hay dos líneas en ese archivo:
mi archivo de prueba y mi siguiente línea están aquí
Aquí hay un programa que lee dos líneas de un archivo.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
La salida es:
mi archivo de prueba y mi siguiente línea están aquí
Si su ruta al archivo es incorrecta o el archivo con ese nombre no existe, obtendrá el siguiente resultado:
Excepción en el hilo "principal" java.io.FileNotFoundException: d:\myTest.txt en java.base/java.io.FileInputStream.open0 (método nativo) en java.base/java.io.FileInputStream.open (FileInputStream.java :213) en java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) en java.base/java.util.Scanner.<init>(Scanner.java:639) en ScannerTest.main( Prueba de escáner.java:8)
Si el programa encontró su archivo, pero está vacío, obtendrá NoSuchElementException:
Excepción en el hilo "principal" java.util.NoSuchElementException: no se encontró ninguna línea en java.base/java.util.Scanner.nextLine(Scanner.java:1651) en ScannerTest.main(ScannerTest.java:10)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION