Błąd skanera z nextInt () [duplikat]
To pytanie ma już tutaj odpowiedź:
Jak korzystać z java.util.Scanner, aby poprawnie odczytać dane wejściowe użytkownika z System.in i działać na nim? 1 odpowiedźPróbuję użyć skanera, aby uzyskać int z klawiatury, ale otrzymuję następujący błąd:
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)
To jest to, co mam. Jest niezależny od reszty mojego programu, nie rozumiem, dlaczego to nie działa. Jest zadeklarowana w metodzie, która jest wywoływana w pętli while, jeśli to pomaga.
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
Przeszedłem przez debuger i zawęziłem błąd do:
Java Runtime Environment wykrył błąd krytyczny: SIGSEGV (0xb) na pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944
Wersja JRE: 7.0_07-b30 Java VM: OpenJDK Server VM (23.2-b09 tryb mieszany linux-x86) Problematyczna ramka: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Nie udało się zapisać zrzutu pamięci. Zrzuty podstawowe zostały wyłączone. Aby włączyć zrzut pamięci, spróbuj „ulimit -c unlimited” przed ponownym uruchomieniem Java