0

「java.util.InputMismatchException」が表示されないようにするにはどうすればよいですか?

例えば:

import java.util.Scanner;

class Test {
  public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    int number;

    System.out.print("Type a number: ");
    number = input.nextInt();
    System.out.println(number);

    input.close();
  }
}

「5」などの有効な int を入力すると正常に動作しますが、ユーザーが「5.1」や「a」などの無効な int を入力すると、エラーException in thread "main" java.util.InputMismatchExceptionが発生します。 . ユーザーが無効な int を入力した場合、エラーを回避して表示/実行する方法はありますか?

そのようです:

Type in a number: a
That is not a valid number. Try again
4

2 に答える 2

1

まず、例外をキャッチして、必要なことを行うことができます。

より良い方法はScanner.hasNextInt()、行のユーザー入力が int であるかどうかをテストするために使用することです。

System.out.println("Type a number");
while(!input.hasNextInt()) {
    input.nextLine();
    System.out.println("That is not a valid number. Try again");
}
number = input.nextInt();
于 2014-03-31T02:10:48.253 に答える
0
number = input.nextInt();

上記の行は整数を読み取ります。例外は、何か他のものを入力していることを意味します (例: String、double)

注: 数値を読みたい場合は、その行を次のように置き換えます。

number = input.nextDouble();
于 2014-03-31T02:11:10.987 に答える