ホームページ > Java > &#&チュートリアル > Java でスキャナーを使用して整数入力を検証し、無効な入力を処理する方法

Java でスキャナーを使用して整数入力を検証し、無効な入力を処理する方法

Barbara Streisand
リリース: 2024-12-12 21:10:19
オリジナル
149 人が閲覧しました

How to Validate Integer Input and Handle Invalid Input in Java using Scanner?

スキャナーを使用して整数入力を検証し、無効な入力を処理する方法

Java でユーザー入力を操作する場合、数値データの妥当性を確認するプログラムの堅牢性にとって重要です。この記事では、Scanner クラスを使用して有効な整数入力を強制し、数字以外の文字などの無効な入力を適切に処理する方法を説明します。

問題:

次の点を考慮してください。コード:

Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;

System.out.print("Enter number 1: ");
num1 = kb.nextInt();

while(num2 < num1) {
    System.out.print("Enter number 2: ");
    num2 = kb.nextInt();
}
ログイン後にコピー

このコードは、ユーザーに 2 つの整数の入力を促し、num2 が大きくなるようにすることを目的としています。 num1よりも。ただし、次の 2 つの課題に直面しています。

  1. ユーザー入力が実際に整数であるかどうかを検証しません。これにより、ユーザーが数字以外の文字を入力したときに実行時例外が発生する可能性があります。
  2. ユーザーが num1 より小さい値として num2 を入力した場合は処理されません。

解決策:

これらの課題に対処するには、スキャナーのhasNextInt() メソッド。このメソッドは、入力ストリーム内の次のトークンが整数として解釈できるかどうかを示すブール値を返します。 false が返された場合は、入力が無効であることがわかり、ユーザーに再試行を求めることができます。

コードの改良版を次に示します。

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next();
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
    while (!sc.hasNextInt()) sc.next();
    num2 = sc.nextInt();
} while (num2 < num1);
System.out.println(num1 + " " + num2);
ログイン後にコピー

このコードでは、次のことを確認します。有効な整数を読み取る前に、hasNextInt() を使用してください。入力が無効な場合は、sc.next() を使用して入力を消費し、ユーザーに再度プロンプトを表示します。

利点:

  • 有効な整数のみが有効であることを保証します。
  • 無効な入力を適切に処理し、ランタイムを防止します。例外。
  • num2 が num1 より大きくなるように強制します。
  • 明示的な parseInt() と NumberFormatException のエラー処理の必要性を排除します。

関連質問:

  • どうやって無効な入力を無視し、Java Scanner を使用して入力ストリームから次の有効な値を読み取ります?

以上がJava でスキャナーを使用して整数入力を検証し、無効な入力を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート