Sto cercando di utilizzare scanner per ottenere un int dalla tastiera, ma io ottenere il seguente errore:errore dello scanner con 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)
Questo è quello che ho. È indipendente dal resto del mio programma, non capisco perché questo non funzioni. È dichiarato in un metodo che viene chiamato in un ciclo while, se questo aiuta.
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
Ho fatto un passo attraverso con il debugger e ristretto l'errore fino a:
È stato rilevato un errore fatale da parte del Java Runtime Environment: SIGSEGV (0xb) al pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944
JRE versione: 7.0_07-b30 Java VM: OpenJDK Server VM (23.2-B09 modalità mista linux-x86) cornice Problematiche: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Impossibile scrivere core dump. I dump del core sono stati disabilitati. Per abilitare il dumping principale, provare "ulimit -c unlimited" prima di riavviare Java
Questo mi manda in un ciclo infinito perché ciò che è all'interno delle parentesi non viene mai chiamato – spatara
@spatara Sì, controlla se è possibile convertire qualsiasi elemento successivo a cui lo Scanner punta in un intero, se è possibile che 'hasNextInt()' restituisca true, altrimenti saràrestituisce falso. –
Sto solo leggendo dalla tastiera, non c'è nextInt quando il metodo è chiamato – spatara