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