Scanner es una clase en el paquete java.util que se utiliza para obtener la entrada de los tipos primitivos como int, double, etc. y strings. Es la forma más fácil de leer la entrada en un programa Java, aunque no es muy eficiente si desea un método de entrada para escenarios donde el tiempo es una restricción como en la programación competitiva.
- Para crear un objeto de la clase Scanner, normalmente pasamos el objeto predefinido System.in, que representa el flujo de entrada estándar. Podemos pasar un objeto de clase Archivo si queremos leer la entrada de un archivo.
- Para leer valores numéricos de un determinado tipo de datos XYZ, la función a utilizar es nextXYZ(). Por ejemplo, para leer un valor de tipo short, podemos usar nextShort()
- Para leer strings, usamos nextLine().
- Para leer un solo carácter, usamos next().charAt(0). La función next() devuelve el siguiente token/palabra en la entrada como una string y la función charAt(0) devuelve el primer carácter de esa string.
- La clase Scanner lee una línea completa y la divide en tokens. Los tokens son pequeños elementos que tienen algún significado para el compilador de Java. Por ejemplo, supongamos que hay una string de entrada: ¿Cómo estás?
En este caso, el objeto del escáner leerá la línea completa y dividirá la string en tokens: «Cómo», «eres» y «tú». Luego, el objeto itera sobre cada token y lee cada token usando sus diferentes métodos.
Veamos el fragmento de código para leer datos de varios tipos de datos.
Java
// Java program to read data of various types using Scanner class. import java.util.Scanner; public class ScannerDemo1 { public static void main(String[] args) { // Declare the object and initialize with // predefined standard input object Scanner sc = new Scanner(System.in); // String input String name = sc.nextLine(); // Character input char gender = sc.next().charAt(0); // Numerical data input // byte, short and float can be read // using similar-named functions. int age = sc.nextInt(); long mobileNo = sc.nextLong(); double cgpa = sc.nextDouble(); // Print the values to check if the input was correctly obtained. System.out.println("Name: "+name); System.out.println("Gender: "+gender); System.out.println("Age: "+age); System.out.println("Mobile Number: "+mobileNo); System.out.println("CGPA: "+cgpa); } }
Java
// Java program to read some values using Scanner // class and print their mean. import java.util.Scanner; public class ScannerDemo2 { public static void main(String[] args) { // Declare an object and initialize with // predefined standard input object Scanner sc = new Scanner(System.in); // Initialize sum and count of input elements int sum = 0, count = 0; // Check if an int value is available while (sc.hasNextInt()) { // Read an int value int num = sc.nextInt(); sum += num; count++; } int mean = sum / count; System.out.println("Mean: " + mean); } }
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA