0
java.util.regex.Patternを使用して簡単なJavaアプリケーションに入力検証を適用したいとします。パターンマッチングを追加する前に、私は期待通りに私の配列にユーザー入力を得ることができましたが、パターンマッチングを使ってこれを行う方法を理解することはできません。Regex.Patternと配列を使用してScannerを使用してJavaで入力検証を行う方法
この行は問題があるようです:in.nextLine();パターンマッチングでwhileステートメントを追加したので、間違った場所にありますか?
ここに私の小さなアプリのコードの関連する塊です。
//These variables used during input validation
String tempName;
int tempGrade;
//These regex patterns are for input validation
//Names can be 1-15 letters and grades are 2 digits
Pattern namePattern = Pattern.compile("[A-Za-z]{1,15}");
Pattern gradePattern = Pattern.compile("[0-9]{2,2}");
//Parallel arrays to hold last names and grades
String[] names = new String[5];
int[] grades = new int[5];
Scanner in = new Scanner(System.in);
try {
for(int i = 0; i<5; i++) {
System.out.println("Enter a name:");
tempName = in.nextLine();
System.out.println("Enter a grade:");
tempGrade = in.nextInt();
in.nextLine();
while(!namePattern.matcher(tempName).matches()) {
System.out.println("Bad input. Try again");
}
names[i] = tempName;
grades[i] = tempGrade;
}
パターンは必要ありません。単に.matches()メソッドを使用してください。 – prsvr