Java エラー java.util.InputMismatchException

Muhammad Zeeshan 2023年10月12日
  1. Java の java.util.InputMismatchException
  2. java.util.InputMismatchException エラーの原因
  3. java.util.InputMismatchException エラーを修正する
Java エラー java.util.InputMismatchException

この記事では、Java プログラミング言語の main スレッドの java.util.InputMismatchException について説明します。

Java の java.util.InputMismatchException

JVM は、ある種類のデータを入力として受け取り、データの不一致を示す別の種類の値を期待するたびに java.util.InputMismatchException をスローします。 これは、値が正規表現パターンに一致しないか、許容範囲外であることを示します。

たとえば、プログラムは、以下に示すように、偶数か奇数かをチェックするために入力として integer 値を探しています。

コード例:

import java.util.Scanner;
public class example {
  public static void main(String[] args) {
    int n = 0;
    Scanner s = new Scanner(System.in);
    for (int i = 0; i < 10; i++) {
      System.out.println("Enter a number to check Even/Odd");
      n = s.nextInt();
      if (n % 2 == 0) {
        System.out.println(n + " = EVEN ");
      } else {
        System.out.println(n + " = ODD ");
      }
    }
  }
}

出力:

Enter a number to check Even/Odd
5
5 = ODD
Enter a number to check Even/Odd
6
6 = EVEN Enter a number to check Even/Odd
z
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at example.main(example.java:8)

java.util.InputMismatchException エラーの原因

この例で java.util.InputMismatchException が発生した理由は、Scanner クラスを使用してユーザー入力を受け取った場合です。 メソッドに与えられたパラメータが有効でない場合、InputMissMatchException が発行されます。

nextInt() 関数に渡された値が String 例外である場合、スローされます。 nextInt() 関数は、文字列値ではなく整数値のみを処理できます。

java.util.InputMismatchException エラーを修正する

このエラーは、不正確なデータが原因で発生します。これを修復するには、データを修正する必要があります。 この例では、nextInt() 関数を使用しました。

ただし、文字列パラメータはサポートしていません。 java.util.InputMismatchException を解決するには、入力検証が適切に機能していること、および適切なデータ型の値を提供していることを確認する必要があります。

try catch メソッドを使用して、ユーザー入力を検証します。 ユーザーが整数以外の無効な値を入力すると、プログラムは次のエラーを返します。

エラー出力:

Input value is Invalid please provide an integer value:

完全なソース コード:

import java.util.Scanner;
public class example {
  public static void main(String[] args) {
    int n = 0;
    try {
      Scanner s = new Scanner(System.in);
      for (int i = 0; i < 10; i++) {
        System.out.println("Enter a number to check Even/Odd");
        n = s.nextInt();
        if (n % 2 == 0) {
          System.out.println(n + " = EVEN ");
        } else {
          System.out.println(n + " = ODD ");
        }
      }
    } catch (Exception exp) {
      System.out.println(" Input value is Invalid please provide an integer value: ");
    }
  }
}

出力:

Enter a number to check Even/Odd
6
6 = EVEN
Enter a number to check Even/Odd
z
Input value is Invalid please provide an integer value:
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

関連記事 - Java Error