Próbuję użyć skanera, aby uzyskać int z klawiatury, ale otrzymuję następujący błąd:błąd skanera z 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)
To jest to, co mam. Jest niezależny od reszty mojego programu, nie rozumiem, dlaczego to nie działa. Jest zadeklarowany 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();
Wszedłem przez z debugera i zawężony błąd w dół do:
krytyczny błąd został wykryty przez Java Runtime Environment: SIGSEGV (0XB) na pc = 0xb6bdc8a8, PID = 5587, tid = 1828186944
JRE wersja: 7.0_07-B30 Java VM: OpenJDK serwera VM (23,2-B09 tryb mieszany Linux x86) Problematyczne ramy: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Nie można zapisać zrzutu pamięci. Zrzuty rdzenia zostały wyłączone. Aby włączyć zrzut dumpingu, spróbuj "ulimit -c unlimited" przed ponownym uruchomieniem Java
to wysyła mnie do nieskończonej pętli bo co znajduje się w nawiasach nigdy nie jest nazywane – spatara
@ spatara Tak sprawdza, czy cokolwiek następny element, na który wskazuje Skaner, może być z powodzeniem przekonwertowany na liczbę całkowitą, jeśli może wtedy 'hasNextInt()' zwróci wartość true, w przeciwnym razie będzie return false. –
Po prostu czytam z klawiatury, nie ma następnegoInt, gdy metoda nazywa się – spatara