En este post hablaremos sobre java.útil.InputMismatchException y cómo solucionarlo. InputMismatchException se lanza cuando intenta leer tokens a través de una instancia de clase de escáner y la entrada recuperada no coincide con el patrón para el tipo esperado.
InputMismatchException en Java
La clase de escáner en Java se puede usar para leer la entrada de un archivo, Flujo de entrada, Ruta de acceso o Cadena. El escáner divide su entrada en tokens utilizando un patrón delimitador, que de forma predeterminada coincide con los espacios en blanco. Estos tokens se pueden convertir en valores de diferentes tipos utilizando los diversos métodos siguientes. Por ejemplo, algunos de los siguientes métodos de la clase Scanner para leer la siguiente entrada del tipo de datos correspondiente son – nextLong (), nextBoolean (), nextByte (), nextDouble (), nextFloat (), nextInt ().
Cuando está leyendo la entrada utilizando una clase de escáner utilizando uno de los siguientes métodos, pero el tipo de entrada pasada no coincide con el siguiente método utilizado para obtener la entrada, se lanza InputMismatchException. Esta excepción también se lanza si la entrada está fuera de rango. Por ejemplo, si la entrada pasada es de tipo String e intentas leerla usando el método nextInt (), se lanza la excepción InputMismatchException.
Java InputMismatchException Ejemplo
En el ejemplo, toma la entrada del usuario y luego muestra si el entero pasado es par o impar. La clase de escáner se utiliza para tomar la entrada del usuario.
import java.util.Scanner;public class InputMismatchExp { public static void main(String args) { Scanner sc = new Scanner(System.in); System.out.println("Enter a number: "); int i = sc.nextInt(); if(i%2 == 0) { System.out.println("Entered number is even"); }else { System.out.println("Entered number is odd"); } }}
Ahora, si pasa la entrada como cualquier otro tipo, como Cadena, se lanzará InputMismatchException.
Enter a number: TwoException in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:939)at java.base/java.util.Scanner.next(Scanner.java:1594)at java.base/java.util.Scanner.nextInt(Scanner.java:2258)at java.base/java.util.Scanner.nextInt(Scanner.java:2212)at com.knpcode.programs.InputMismatchExp.main(InputMismatchExp.java:10)
How to resolve InputMismatchException
Only way to handle InputMismatchException is to ensure that passed input values are of compatible type.
- StackOverflowError Vs OutOfMemoryError en Java
- ClassCastException en Java y Resolución
- throw Vs throws en el Manejo de excepciones de Java
- Propagación de excepciones en Java
- con-recursos Con Ejemplos
- Excepción de Java Manejo de Preguntas y Respuestas de Entrevistas
- Cómo Leer Archivos Delimitados en Java
Eso es todo para el tema InputMismatchException en Java y Resolución. Si falta algo o tiene algo que compartir sobre el tema, escriba un comentario.
También te puede gustar
- ¿Podemos Anular el método start() en Java
- Cómo Ordenar ArrayList de objetos en Java
- Clonación de objetos en Java Mediante el Método clone ()
- Conversión de tipos y Tipos en Java
- Programa Java de Número Estable o Inestable
- bota de resorte-arranque-padre en bota de resorte