ホームページ  >  記事  >  Java  >  Java ユーザー入力フォーマット例外 (InputFormatException) の解決策

Java ユーザー入力フォーマット例外 (InputFormatException) の解決策

WBOY
WBOYオリジナル
2023-08-18 13:01:032171ブラウズ

Java ユーザー入力フォーマット例外 (InputFormatException) の解決策

Java ユーザー入力形式の例外 (InputFormatException) を解決するソリューション

Java プログラミングでは、ユーザー入力は一般的な要件です。ただし、場合によっては、ユーザーが予期された形式に準拠していないコンテンツを入力し、プログラムが異常な動作を引き起こす可能性があります。一般的な例外の 1 つは、入力形式の例外である InputFormatException です。この記事では、Java ユーザー入力形式の例外を解決するためのいくつかのソリューションを紹介し、対応するコード例を示します。

解決策 1: 正規表現を使用して入力形式を確認する

正規表現は、文字列パターンの一致に使用できる強力なツールです。正規表現を使用して、ユーザー入力が正しい形式であることを確認できます。サンプル コードは次のとおりです。

import java.util.Scanner;
import java.util.regex.Pattern;

public class InputValidator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        String input = scanner.nextLine();

        if (Pattern.matches("[0-9]+", input)) {
            int number = Integer.parseInt(input);
            System.out.println("输入的整数为:" + number);
        } else {
            System.out.println("输入格式不正确!");
        }
    }
}

上記のサンプル コードでは、正規表現 [0-9] を使用して 1 つ以上の数字と一致させました。ユーザーが入力した文字列がこの正規表現と一致する場合、入力が整数であることを意味し、int 型に変換して以降の処理を実行できます。ユーザーが入力した文字列が正規表現と一致しない場合は、入力形式が間違っていることを意味するため、対応するプロンプトを表示できます。

解決策 2: 例外処理メカニズムを使用して、InputFormatException をキャッチする

正規表現を使用して入力形式を検証するだけでなく、例外処理メカニズムを使用して、InputFormatException をキャッチして処理することもできます。以下はサンプル コードです。

import java.util.Scanner;

public class InputProcessor {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            System.out.println("请输入一个整数:");
            int number = scanner.nextInt();
            System.out.println("输入的整数为:" + number);
        } catch (InputMismatchException e) {
            System.out.println("输入格式不正确!");
            e.printStackTrace();
        }
    }

}

上記のサンプル コードでは、try-catch ステートメント ブロックを使用して、スローされる可能性のある InputMismatchException 例外をキャッチします。この例外は、ユーザー入力を int 型に変換できない場合にスローされます。 catch ブロックで対応するプロンプトを表示し、デバッグ用に例外スタック情報を出力できます。

解決策 3: ループを使用して入力形式が正しいことを確認する

入力形式が正しくなるまで、ユーザーに複数回入力してもらいたい場合があります。ループを使用すると、この要件を達成できます。サンプル コードは次のとおりです。

import java.util.Scanner;

public class InputLoop {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = 0;
        boolean validInput = false;

        while (!validInput) {
            System.out.println("请输入一个整数:");
            try {
                number = scanner.nextInt();
                validInput = true;
            } catch (InputMismatchException e) {
                System.out.println("输入格式不正确!");
                scanner.nextLine(); // 清除缓冲区中剩余的输入内容
            }
        }

        System.out.println("输入的整数为:" + number);
    }
}

上記のサンプル コードでは、while ループを使用して、int# に変換できる入力を取得するまでユーザー入力を繰り返し受け入れます。 ## 入力を入力します。ユーザー入力を int 型に変換できない場合は、対応するプロンプトを表示し、scanner.nextLine() メソッドを呼び出してバッファーに残っている入力内容をクリアします。無限ループを防ぎます。

概要:

この記事では、Java ユーザー入力形式の例外を解決するための 3 つのソリューションを紹介します。これには、正規表現を使用して入力形式を検証すること、例外処理メカニズムを使用して InputFormatException をキャプチャすること、ループを使用して入力形式を確認することなどがあります。入力形式は正しいです。上記は比較的一般的で実用的な方法であり、開発者は実際のニーズに応じて適切な方法を選択して、異常なユーザー入力形式の問題を解決できます。コードサンプルは実際の開発の参考としてもご利用いただけます。この記事が、異常な Java ユーザー入力形式の問題の解決に役立つことを願っています。

以上がJava ユーザー入力フォーマット例外 (InputFormatException) の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。