Java integer input-Validierung
Ich versuche zum validieren von Benutzereingaben.Der Benutzer legt in der Y-Koordinate ein Brief zwischen (A-J) und x-Koordinate eine Zahl zwischen (1-9).Ich überprüfen kann, ob die y-Koordinate, aber ich habe Probleme bei der Validierung der x-Koordinate. Ich will es so, wenn der Benutzer legt in etwas anderes als eine Zahl zwischen 1 und 9 hält es den Benutzer auffordert, für die gültige Eingabe.
do {
//inner loop checks and validates user input
do {
System.out.println("Enter X Co-Ord (A-J), or Q to QUIT");
letter = input.next().toUpperCase(); //upper case this for
//comparison
if (letter.equals("Q"))
break; //if user enters Q then quit
String temp = "ABCDEFGHIJ";
while (temp.indexOf(letter) == -1) {
validString = false;
System.out.println("Please enter a valid input");
letter = input.next().toUpperCase();
col = temp.indexOf(letter);
}
if (temp.indexOf(letter) != -1) {
validString = true;
col = temp.indexOf(letter);
}
try {
System.out.println("Enter Y Co-Ord (0-9)");
row = input.nextInt();
} catch (InputMismatchException exception) {
validInt = false;
System.out.println("Please enter a number between 1 -9");
}
catch (Exception exception) {
exception.printStackTrace();
}
valuesOK = false; //only set valuesOK when the two others are
//true
if (validString && validInt) {
valuesOK = true;
}
} while (!valuesOK); //end inner Do loop
Ausgabe:
Geben Sie die X-Co-Ord - (A-J), oder Q zum BEENDEN
d
Geben Sie Die Y-Co-Ord (0-9)
h
Bitte geben Sie eine Zahl zwischen 1 -9
Geben Sie die X-Co-Ord - (A-J), oder Q zum BEENDEN
Geben Sie Die Y-Co-Ord (0-9)
- Sie werden wollen, richten Sie Ihren text; man sagt, 0-9, von dem man sagt, 1-9.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nur eine while-Schleife um Ihre
nextInt()
die gleiche wie Sie beim Lesen die Buchstaben:input
zum Beispiel.Wollen einfach nur, um die Validierung mehr Sinn machen, mit der Forderung, da sich die menschliche 's Auge überspringen kann leicht die Linie
nextInt()
Natürlich, wenn Sie erhalten den richtigen Wert, dann kann man analysieren, es zu integer wieder (sicher !!!)