Estoy tratando de utilizar el escáner para obtener un entero desde el teclado, pero consiguiendo el error siguiente:de error del escáner 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)
Esto es lo que tengo. Es independiente del resto de mi programa, no entiendo por qué esto no está funcionando. Se declara en un método que se está llamando en un ciclo while, si eso ayuda.
// scan for selection
Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // error occurs at this line
s.close();
Di un paso adelante con el depurador y estrechan el error a:
Un error fatal ha sido detectado por el entorno de ejecución de Java: SIGSEGV (0xb) en pc = 0xb6bdc8a8, pid = 5587, tid = 1828186944
JRE versión: 7.0_07-b30 Java VM: OpenJDK servidor VM (23.2-b09 modo mixto linux-x86) marco Problemática: V [libjvm.so + 0x4258a8] java_lang_String :: utf8_length (oopDesc *) + 0x58
Error al escribir el volcado del núcleo. Los volcados del núcleo han sido deshabilitados Para habilitar el volcado del núcleo, intente con "ulimit -c unlimited" antes de volver a iniciar Java
Esto me envía en un bucle infinito, porque lo está dentro de los paréntesis nunca se llama – spatara
@spatara Sí comprueba si cualquiera de los siguientes elementos a los que apunta el escáner puede convertirse con éxito en un entero, si puede entonces 'hasNextInt()' devolverá verdadero, de lo contrario lo hará falso retorno. –
Estoy leyendo desde el teclado, no hay nextInt cuando el método se llama – spatara