NoSuchElementException 在创建另一个扫描器时引用第一个扫描器
NoSuchElementException reffers to first scanner when another is created
所以小组中可能有人遇到了类似的问题,但我找不到与我相近的人。我无法让 2 个扫描仪一个接一个地工作...添加第二个扫描仪会使第一个变得疯狂并抛出
"NoSuchElementException"
在扫描仪命令的开头。
这是我的代码:
public class Stiklainiai {
static Scanner program = new Scanner(System.in);
static Scanner name_input = new Scanner(System.in);
public static void main(String[] argumentai){
System.out.println("Welcome to Java IDE !");
name();
jar();
}
public static String name() {
String name_select;
System.out.println("name yourself");
name_select = name_input.next();
name_input.close();
return name_select;
}
public static int jar(){
int jar_select; // input variable (1-6) for "if" statement
int jar_weight_assigned = 0; //unassigned capacity (applied by default if error occurs (outside 1-6 bounds))
String jar_name_assigned = ""; //unassigned name (applied by default if error occurs (outside 1-6 bounds))
int custom_jar_cap = 0; //custom "int" variable (custom jar)
String custom_jar_name = ""; //custom "String" variable (custom jar)
int[] jar_weight_arr = new int[5]; //jar capacity array
String[] jar_name_arr = new String[5]; //jar name array
jar_weight_arr[0] = 9;
jar_weight_arr[1] = 99;
jar_weight_arr[2] = 999;
jar_weight_arr[3] = 9999;
jar_weight_arr[4] = 99999;
jar_name_arr[0] = "bybiene22";
jar_name_arr[1] = "bybiene44";
jar_name_arr[2] = "bybiene66";
jar_name_arr[3] = "bybiene88";
jar_name_arr[4] = "bybiene000";
jar_select = program.nextInt();
...
...
...
以此类推剩下的代码。
当我 运行 时,我可以输入一个名称,但之后我得到 "NoSuchElementException"
指的是:
jar_select = program.nextInt();
(扫描仪打开的地方)
后面是main方法中声明的方法错误:
jar();
其余代码只需一台扫描仪即可正常工作...
我的观点是使用单独的扫描仪创建一种方法,将名称分配给
"x" 变量,returns main 方法的值。然后,第二个 运行 是另一个方法中程序的其余部分,使用 "x" 变量和 imputed
的值
任何人都知道原因,我对 java 还很陌生 :)
问题隐藏在Scanner.close
背后。每当您关闭 Scanner
时,您也会关闭底层 System.in
,因此当您使用第二个扫描仪访问它时,它不会可用。
解决方法:不关闭第一个Scanner
。
所以小组中可能有人遇到了类似的问题,但我找不到与我相近的人。我无法让 2 个扫描仪一个接一个地工作...添加第二个扫描仪会使第一个变得疯狂并抛出
"NoSuchElementException"
在扫描仪命令的开头。 这是我的代码:
public class Stiklainiai {
static Scanner program = new Scanner(System.in);
static Scanner name_input = new Scanner(System.in);
public static void main(String[] argumentai){
System.out.println("Welcome to Java IDE !");
name();
jar();
}
public static String name() {
String name_select;
System.out.println("name yourself");
name_select = name_input.next();
name_input.close();
return name_select;
}
public static int jar(){
int jar_select; // input variable (1-6) for "if" statement
int jar_weight_assigned = 0; //unassigned capacity (applied by default if error occurs (outside 1-6 bounds))
String jar_name_assigned = ""; //unassigned name (applied by default if error occurs (outside 1-6 bounds))
int custom_jar_cap = 0; //custom "int" variable (custom jar)
String custom_jar_name = ""; //custom "String" variable (custom jar)
int[] jar_weight_arr = new int[5]; //jar capacity array
String[] jar_name_arr = new String[5]; //jar name array
jar_weight_arr[0] = 9;
jar_weight_arr[1] = 99;
jar_weight_arr[2] = 999;
jar_weight_arr[3] = 9999;
jar_weight_arr[4] = 99999;
jar_name_arr[0] = "bybiene22";
jar_name_arr[1] = "bybiene44";
jar_name_arr[2] = "bybiene66";
jar_name_arr[3] = "bybiene88";
jar_name_arr[4] = "bybiene000";
jar_select = program.nextInt();
...
...
...
以此类推剩下的代码。
当我 运行 时,我可以输入一个名称,但之后我得到 "NoSuchElementException"
指的是:
jar_select = program.nextInt();
(扫描仪打开的地方)
后面是main方法中声明的方法错误:
jar();
其余代码只需一台扫描仪即可正常工作...
我的观点是使用单独的扫描仪创建一种方法,将名称分配给 "x" 变量,returns main 方法的值。然后,第二个 运行 是另一个方法中程序的其余部分,使用 "x" 变量和 imputed
的值任何人都知道原因,我对 java 还很陌生 :)
问题隐藏在Scanner.close
背后。每当您关闭 Scanner
时,您也会关闭底层 System.in
,因此当您使用第二个扫描仪访问它时,它不会可用。
解决方法:不关闭第一个Scanner
。