Ich versuche, Scanner zu verwenden, um einen int von der Tastatur zu bekommen, aber ich folgende Fehlermeldung erhalten:Scannerfehler mit nextInt()
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at TableReader.mainMenu(TableReader.java:122)
at TableReader.main(TableReader.java:76)
Dies ist, was ich habe. Es ist unabhängig vom Rest meines Programms, ich verstehe nicht, warum das nicht funktioniert. Es wird in einer Methode deklariert, die in einer while-Schleife aufgerufen wird, wenn das hilft.
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
I mit dem Debugger trat durch und verengt den Fehler bis auf:
Ein schwerwiegender Fehler ist durch die Java-Laufzeitumgebung erkannt wurde: SIGSEGV (0xb) bei PC = 0xb6bdc8a8, pid = 5587, tid = 1828186944
JRE-Version: 7.0_07-b30 Java VM: OpenJDK Server VM (23,2-b09 gemischten Modus linux-x86) Problematische Rahmen: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Fehler beim Schreiben des Core Dumps. Core Dumps wurden deaktiviert. Versuchen Sie "ulimit -c unlimited", bevor Sie Java erneut starten.
Dieser schickt mich in eine Endlosschleife, weil was wird innerhalb der Klammern nie aufgerufen – spatara
@spatara Ja überprüft es, ob das nächste Element, auf das der Scanner verweist, erfolgreich in eine Ganzzahl konvertiert werden kann, wenn es dann 'hasNextInt()' zurückgeben kann, andernfalls wird es falsch zurückgeben. –
Ich lese gerade von der Tastatur, es gibt keine nextInt, wenn die Methode aufgerufen wird – spatara