Java - Überprüfung, ob eine Eingabe mit Integer getätigt wurde?
Es ist ja nicht möglich, einfach nur zu schreiben:
int test = scanner.nextInt();
if (test == null) {
System.out.println("Fehler!");
}
Ich habe im Internet schon viel recherchiert, bin jedoch nicht auf richtige Lösungen gestoßen. Es ist wichtig, dass es sich hierbei um Integer handelt und nicht um einen String!
3 Antworten
Der Thread blockiert bis eine Eingabe getätigt wurde.
Wenn du prüfen willst, ob eine gültige Zahl eingegeben wurde, das mache ich immer, indem ich einen String lese und ihn dann in einem try-Block konvertiere.
Exceptions sind das was du brauchst. Aus der Dokumentation erfährst du das es zu einer InputMismatchException kommt wenn kein Integer eingegeben wird. Den kannst du abfangen und entsprechend behandeln.
Es hätte gereicht, wenn du dir die Dokumentation zur Scanner-Klasse einmal genauer angeschaut hättest: https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/util/Scanner.html
In dieser wird unter anderem die hasNextInt-Methode aufgelistet, die du zur Prüfung vor dem Einlesen nutzen kannst:
if (scanner.hasNextInt()) {
int test = scanner.nextInt();
// ...
}
else {
// ...
}