Entrada de cadenas múltiples en Java usando un escáner [con ejemplo de codificación]

Publicado: 2021-02-05

Tabla 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

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

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.