中国語、英語、数字のみを許可する入力検証の実装 Javaアプリケーションでユーザー入力を検証し、中国語の文字、英語のアルファベット、数字のみを受け付けるようにする方法を説明します。これは、正規表現(Regular Expression)を使用して実現できます。
処理フローチャート
graph TD
A[開始] --> B[ユーザー入力の受付]
B --> C{入力が中国語・英語・数字か?}
C -->|はい| D[有効な入力として処理]
C -->|いいえ| E[エラーメッセージを表示]
E --> B
D --> F[終了]
実装手順とコード例 ステップ1:ユーザー入力の受付 まず、ユーザーからの入力を受け取るために、Scannerクラスのインスタンスを作成します。 // 入力を読み取るためのScannerオブジェクトを作成 Scanner inputReader = new Scanner(System.in); System.out.println("文字を入力してください(中国語、英語、数字のみ):"); String userInput = inputReader.nextLine();
ステップ2:正規表現による入力の検証 次に、正規表現を使用して、受信した文字列が中国語、英語、数字のいずれかで構成されているかを判断します。正規表現パターン [\u4e00-\u9fa5a-zA-Z0-9]+ は、中国語の文字(\u4e00-\u9fa5)、英字(a-zA-Z)、数字(0-9)のいずれか1文字以上(+)が含まれているかをチェックします。 // 正規表現で入力が中国語、英語、数字のみかを判定 boolean isValid = userInput.matches("[\u4e00-\u9fa5a-zA-Z0-9]+");
ステップ3:結果に基づいた処理 検証の結果に応じて、有効な入力であるか、または再入力を求めるかの処理を行います。以下の例では、無効な入力の場合に再度入力を促すループを実装しています。 // 検証結果に基づいて処理を実行 if (isValid) { System.out.println("有効な入力です: " + userInput); } else { System.out.println("無効な入力です。中国語、英語、数字のみを入力してください。"); }
完全なコード例 以下は、無効な入力が与えられる限り、ユーザーに再入力を求め続ける完全なプログラムの例です。 import java.util.Scanner;
public class InputValidator { public static void main(String[] args) { Scanner inputReader = new Scanner(System.in); String userInput; boolean isValid;
// 有効な入力が得られるまでループ
do {
System.out.println("文字を入力してください(中国語、英語、数字のみ):");
userInput = inputReader.nextLine();
isValid = userInput.matches("[\\u4e00-\\u9fa5a-zA-Z0-9]+");
if (!isValid) {
System.out.println("無効な入力です。中国語、英語、数字のみを入力してください。");
}
} while (!isValid);
System.out.println("有効な入力です: " + userInput);
inputReader.close();
}
}