Entrada de cadenas múltiples en Java usando un escáner [con ejemplo de codificación]
Publicado: 2021-02-05Tabla de contenido
Introducción
En el paquete java.util, el escáner es una de las clases que ayudan a recopilar múltiples entradas de tipos primitivos como doble, entero, cadenas, etc. Aunque no es una forma eficiente de leer entradas en un programa Java donde el tiempo actúa como restricción, es sin duda una de las formas más fáciles de recopilar múltiples entradas del usuario. En este blog, aprenderá cómo recopilar múltiples entradas de cadenas del usuario en un programa Java utilizando la clase de escáner.
Métodos para tomar múltiples entradas usando el escáner
Debe importar el paquete java.util en un programa antes de usar la clase Scanner. La siguiente tabla enumera los métodos utilizados para tomar múltiples entradas de diferentes tipos del usuario en un programa Java.
Método | Entradas |
siguienteInt() | Entero |
siguienteFlotante() | Flotador |
siguienteDoble() | Doble |
siguienteLargo() | Largo |
siguienteCorto() | Pequeño |
próximo() | Una sola palabra |
Proxima linea() | Línea de cuerdas |
siguienteBooleano() | booleano |
Usando el método java nextLine()
El método java.util.Scanner.nextLine() devuelve la línea que se omitió al hacer avanzar el escáner más allá de la línea actual. Si se proporciona un separador de línea al final de la línea actual, este método lo excluye y devuelve el resto de la cadena de la línea actual. El escáner se configura al comienzo de la siguiente línea y lee la cadena completa, incluidos los espacios en blanco de las palabras.
La sintaxis del método nextLine() es la siguiente:
Cadena pública nextLine()
Este método arroja las siguientes dos excepciones:

- NoSuchElementException: si la cadena está vacía o no se encuentra ninguna línea.
- IllegalStateException: si el escáner está cerrado.
Ejemplo
El siguiente ejemplo demuestra cómo el método java.util.Scanner.nextLine() recopila múltiples entradas del usuario.
importar java.util.Scanner; clase pública SacnnerDemoMultipleString { public static void main(String[] args) { Demostración del escáner = nuevo escáner (System.in); System.out.print(“Ingrese varias entradas que desea imprimir: “); //toma una entrada entera String[] string = new String [demo.nextInt()]; //consumiendo el <enter> de la entrada anterior demostración.nextLine(); for (int i = 0; i < cadena.longitud; i++) { cadena[i] = demostración.nextLine(); } System.out.println(“\nHa ingresado la siguiente entrada: “); //bucle for-each para imprimir la cadena for(Cadena cadena: cadena) { Sistema.salida.println(str); // cerrar el escáner escáner.cerrar(); } } } |
El programa anterior imprimirá la siguiente salida
Ingrese varias entradas que desea imprimir: 7 misha Harry Roberto harvey Jill Raquel Jennifer Ha introducido la siguiente entrada: misha Harry Roberto harvey Jill Raquel Jennifer |
Uso del método java nextInt()
El método java.util.Scanner.nextInt() analiza la entrada proporcionada por el usuario como un número entero. Si se encuentra un número entero, el escáner avanza más allá de la entrada coincidente.
La sintaxis del método nextInt() es la siguiente:
Int público nextInt()
Este método arroja las siguientes tres excepciones:
- InputMismatchException: si el siguiente token no coincide con la expresión regular entera o si el siguiente token está fuera del rango.
- NoSuchElementException: si la entrada está agotada.
- IllegalStateException: si el escáner está cerrado.
Ejemplo
El siguiente ejemplo demuestra cómo el método java.util.Scanner.nextInt() recopila múltiples entradas del usuario.
// Programa Java para escanear enteros usando Scanner // clase e imprime su media. importar java.util.Scanner; clase pública ScannerDemoInteger { public static void main(String[] args) { Demostración del escáner = nuevo escáner (System.in); // Inicializar suma y cuenta de elementos de entrada int suma = 0, cuenta = 0; // Comprobar si hay un valor entero presente mientras (demo.hasNextInt()) ![]() { // Escanear un valor entero int num = demo.nextInt(); suma += num; contar++; } int media = suma / cuenta; System.out.println(“Media: ” + media); } } |
El programa anterior se alimenta con la siguiente entrada:
101 223 238 892 99 500 728 |
El programa anterior imprimirá el siguiente resultado:
Media: 397 |
Lea también: Proyecto Java MVC
Usando el método java nextDouble()
El método java.util.Scanner.nextDouble() escanea la entrada proporcionada por el usuario como un doble. Si se encuentra una expresión regular flotante, el escáner avanza más allá de la entrada coincidente.
La sintaxis del método nextInt() es la siguiente:
public double nextDouble()

Este método arroja las siguientes tres excepciones:
- InputMismatchException: si el siguiente token no coincide con la expresión regular flotante o si el siguiente token está fuera del rango.
- NoSuchElementException: si la entrada está agotada.
- IllegalStateException: si el escáner está cerrado.
Ejemplo
El ejemplo demuestra cómo el método java.util.Scanner.nextDouble() recopila múltiples entradas del usuario.
// Programa Java para escanear flotante usando Scanner importar java.util.Scanner; clase pública EscánerDobleExpresiónRegular { public static void main(String[] args) { Cadena nueva = “¡Buenos días! 3 + 3.0 = 6 verdadero”; // escribir un nuevo objeto de escáner con el objeto de cadena especificado Demostración de escáner = nuevo(s) escáner(es); // usa la configuración regional de EE. UU. para poder identificar dobles en la cadena demo.useLocale(Locale.US); // busca el siguiente token doble e imprímelo while (demo.hasNext()) { // si el siguiente es un doble, imprime encontrado y la expresión regular flotante if (demo.hasNextDouble()) { System.out.println(“Encontrado:” + demo.nextDouble()); } // si no se encuentra una expresión regular doble, imprime "Not Found" y el token System.out.println(“No encontrado:” + demo.next()); } // cerrar el escáner escáner.cerrar(); } } |
El programa anterior dará como resultado el siguiente resultado:
No encontrado: Bueno No encontrado: ¡Buenos días! Encontrado: 3.0 No encontrado: + Encontrado: 3.0 No encontrado: = Encontrado: 6.0 No encontrado: verdadero |
Conclusión
Por ejemplo, los códigos proporcionados en este blog son el propósito y pueden modificarse según las necesidades de cada individuo. Si está interesado en obtener más información sobre el desarrollo de software de pila completa y Java, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, 9+ proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.
¿Qué es la clase Scanner en Java?
La clase Scanner le permite leer valores desde el teclado sin usar la entrada de la consola de Java. La entrada de la consola de Java es lenta, al igual que su redirección. Scanner es más rápido y conveniente, por lo que debe usarse Scanner en lugar de la entrada de la consola de Java. El escáner utiliza el flujo de entrada regular de Java, por lo que se puede encadenar con otros analizadores. El escáner también es más fácil de usar que la entrada de la consola de Java. Scanner tiene tres subclases principales, a saber, BufferedReader, InputStreamReader y FileReader. El más general es BufferedReader. BufferedReader puede leer cualquier cosa que InputStreamReader pueda leer y tiene una gran ventaja: el búfer. El búfer puede contener una línea a la vez. Un flujo de entrada no tiene ningún búfer: cuando llamas a next(), devuelve el valor. Esto significa que debe recopilar los valores antes de poder hacer algo con ellos. El escáner lo hace por usted.
¿Qué es un generador de cadenas en Java?
Un generador de cadenas es un nuevo tipo de clase para crear una cadena. La clase de construcción de cadenas se introduce en Java a partir de la versión 1.3. Le permite crear una cadena concatenando una cantidad de cadenas y cambiará automáticamente su tamaño a medida que le agregue más cadenas. En comparación con la concatenación de cadenas, usar el generador de cadenas es más rápido y flexible, aunque es menos legible. Los objetos StringBuilder son objetos que se utilizan para crear valores de cadena. Los objetos StringBuilder tienen varios métodos.
¿Qué es un InputStreamReader en Java?
InputStreamReader lee un flujo de caracteres de un flujo de entrada y los decodifica en una codificación de caracteres específica. Proporciona una manera fácil de convertir secuencias de caracteres de una codificación a otra. InputStreamReader lee los bytes de la transmisión subyacente y los convierte en caracteres utilizando la codificación de juego de caracteres especificada. Es una clase que se utiliza para convertir datos de flujo de bytes en datos de flujo de caracteres. El flujo de bytes representa datos binarios y el flujo de caracteres representa texto.