Java エラー java.util.InputMismatchException
-
Java の
java.util.InputMismatchException
-
java.util.InputMismatchException
エラーの原因 -
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:
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