Wie verhindere ich, dass ein Scanner Ausnahmen auslöst, wenn der falsche Typ eingegeben wird?
Hier ist ein Beispielcode:
import java.util.Scanner;
class In
{
public static void main (String[]arg)
{
Scanner in = new Scanner (System.in) ;
System.out.println ("how many are invading?") ;
int a = in.nextInt() ;
System.out.println (a) ;
}
}
Wenn ich das Programm starte und ein gebeint
mögen4
, dann geht alles gut.
Auf der anderen Seite, wenn ich antwortetoo many
es lacht nicht über meinen lustigen Witz. Stattdessen bekomme ich das (wie erwartet):
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:819)
at java.util.Scanner.next(Scanner.java:1431)
at java.util.Scanner.nextInt(Scanner.java:2040)
at java.util.Scanner.nextInt(Scanner.java:2000)
at In.main(In.java:9)
Gibt es eine Möglichkeit, Einträge zu ignorieren, die nicht ints sind, oder mit "Wie viele fallen ein?" Ich würde gerne wissen, wie man beides macht.