Objetos de escáner en métodos y NoSuchElementException [duplicado]
Esta pregunta ya tiene una respuesta aquí:
java.util.NoSuchElementException - Escáner que lee la entrada del usuario 3 respuestasRealmente he tratado de encontrar la respuesta a través de los hilos, pero todavía espero obtener información.
El código a continuación es de mal estilo, creo, pero no sé por qué me disparó unjava.util.NoSuchElementException
después de ingresar el número, ya que hago dos objetos Scanner para dos métodos y debería poder comenzar una nueva entrada. Y si borro elinput.close()
en inputAndPrintNumber (), funciona y se compila correctamente. Realmente espero saber por qué y cómo solucionarlo si todavía utilizo dos Scanner obj y sin borrar elinput.close()
si es posible.
import java.util.*;
public class t{
public static void main(String [] args){
inputAndPrintNumber();
inputAndPrintString();
}
public static void inputAndPrintNumber(){
Scanner input = new Scanner(System.in);
String s = input.nextLine();
System.out.print(s);
input.close();
}
public static void inputAndPrintString(){
Scanner input2 = new Scanner(System.in);
int a = input2.nextInt();
System.out.print(a);
}
}
¿Ni siquiera estoy seguro de si el siguiente código es mejor o alguna idea mejor?
import java.util.*;
public class t{
public static Scanner input = new Scanner(System.in);
public static void main(String [] args){
inputAndPrintNumber();
inputAndPrintString();
input.close();
}
public static void inputAndPrintNumber(){
String s = input.nextLine();
System.out.print(s);
}
public static void inputAndPrintString(){
int a = input.nextInt();
System.out.print(a);
}
}