bekommen Ich möchte einige Eingabe-Validierung auf eine einfache Java-Anwendung mit java.util.regex.Pattern anwenden. Vor dem Hinzufügen des Mustervergleichs konnte ich wie erwartet Eingaben von Benutzern in meine Arrays erhalten, aber ich kann nicht herausfinden, wie dies mit dem Mustervergleich geschehen soll.Wie kann ich Input-Validierung mit Java mit Scanner mit regex.Pattern und Arrays
Diese Zeilen scheint problematisch zu sein: in.nextLine(); Ist es jetzt an der falschen Stelle, dass ich die while-Anweisung mit dem Mustervergleich hinzugefügt habe?
Hier ist der relevante Code aus meiner kleinen App.
//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;
}
Sie brauchen kein Muster, verwenden Sie einfach .matches() -Methode. – prsvr