Java Scanner Eingabe prüfen?
Scanner scanner = new Scanner(System.in);
for (String s : all.keySet()) { System.out.println(s.trim() + "?"); System.out.println("1 bis 10?");
int num = scanner.nextInt();
while (num > 10 || num < 0) {
System.out.println();
System.out.println(s.trim() + "?");
System.out.println("Bitte gib eine Zahl zwischen 1 und 10 ein.");
num = scanner.nextInt();
}
all.put(s, num);
System.out.println();
}
Ich gehe mit einer for-Schleife durch eine Liste mit Wörtern und möchte sicherstellen, dass die Eingabe zwischen 1 und 10 ist, und wenn KEINE Zahl eingetippt wird, dass darauf hingewiesen wird, dass man eine Zahl eintippen soll.
Bis jetzt funktioniert nur, dass er zwischen 1 und 10 Zahlen nimmt. Passt. Aber er schaut nicht ob es ein String is.
Wie?
2 Antworten
Mit dieser Methode schaust du ob ein String numerisch ist:
public static boolean isNumeric(String strNum) {
if (strNum == null) {
return false;
}
try {
double d = Double.parseDouble(strNum);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
So liest du Strings mit einem Scanner ein:
Scanner scan = new Scanner(System.in);
// read the first token
String example = scan.next();
Wenn dein String Numerisch ist kannst du davon ausgehen, dass er weder leer noch keine zahl ist...
LG
Ich würd die Eingabe erstmal zu int casten, alles was dann keine Zahl ist gibt eine Exception die Du abfangen kannst. Wenn es eine Zahl ist, dann prüfste wie gehabt die Größe.
int i = Integer.parseInt(myString);