Java Scanner next()为某些联机编译器抛出NoTouchElementException
这似乎是一个常见的问题(问了多次),但我无法找到这种行为的解释。以下代码在一个编译器中工作,但在另一个编译器的线程“main”java.util.NoSuchElementException中抛出Java Scanner next()为某些联机编译器抛出NoTouchElementException,java,Java,这似乎是一个常见的问题(问了多次),但我无法找到这种行为的解释。以下代码在一个编译器中工作,但在另一个编译器的线程“main”java.util.NoSuchElementException中抛出异常 Scanner s = new Scanner(System.in); System.out.println("Enter name: "); String name = s.next(); System.out.println("Name is " + name); 在上测试,
异常
Scanner s = new Scanner(System.in);
System.out.println("Enter name: ");
String name = s.next();
System.out.println("Name is " + name);
在上测试,并引发异常。但是,在某些编译器上,它可以正常工作。这种行为(如JDK中的更改等)有什么原因吗?由于枚举中没有更多元素,因此引发此异常
见:
由枚举的nextElement方法引发,以指示
枚举中没有其他元素
一些在线IDE根本不允许用户输入,在这种情况下,一旦您尝试读取用户输入,就会抛出异常
它在IDE上工作,因为它允许用户输入
它不适用于和IDE,因为这些IDE不支持用户输入
不过,还有第二种方法可以在codechef上添加用户输入。只需勾选自定义输入
复选框并提供任何输入。然后它将编译
此异常的另一个原因,即没有更多的用户输入,可以在调用s.next()
之前通过检查s.hasNext()
查看扫描仪是否有其他令牌来处理
Scanner s = new Scanner(System.in);
System.out.print("Enter name: ");
String name = null;
if(s.hasNext())
name = s.next();
System.out.println("Name is " + name);
由于枚举中没有更多元素,因此引发此异常
见:
由枚举的nextElement方法引发,以指示
枚举中没有其他元素
一些在线IDE根本不允许用户输入,在这种情况下,一旦您尝试读取用户输入,就会抛出异常
它在IDE上工作,因为它允许用户输入
它不适用于和IDE,因为这些IDE不支持用户输入
不过,还有第二种方法可以在codechef上添加用户输入。只需勾选自定义输入
复选框并提供任何输入。然后它将编译
此异常的另一个原因,即没有更多的用户输入,可以在调用s.next()
之前通过检查s.hasNext()
查看扫描仪是否有其他令牌来处理
Scanner s = new Scanner(System.in);
System.out.print("Enter name: ");
String name = null;
if(s.hasNext())
name = s.next();
System.out.println("Name is " + name);
根据rD,回答问题的另一个解决方案是捕获异常:
Scanner s = new Scanner(System.in);
System.out.print("Enter name: ");
String name = "";
try {
name = s.next();
System.out.println("Name is " + name);
} catch (NoSuchElementException e) {
System.out.println("You have to enter a name");
}
根据rD,回答问题的另一个解决方案是捕获异常:
Scanner s = new Scanner(System.in);
System.out.print("Enter name: ");
String name = "";
try {
name = s.next();
System.out.println("Name is " + name);
} catch (NoSuchElementException e) {
System.out.println("You have to enter a name");
}
在处理在线IDE时,您应该在指定的区域中输入您的输入。如您所给出的示例所示,codechef
具有额外的输入字段(即自定义输入)。但是有些在线IDE不支持自定义输入,就像第一个链接的IDE一样。他们给出了错误的答案。(即java.util.NoSuchElementException
)
在处理在线IDE时,您应该在指定的区域输入您的输入。如您所给出的示例所示,codechef
具有额外的输入字段(即自定义输入)。但是有些在线IDE不支持自定义输入,就像第一个链接的IDE一样。他们给出了错误的答案。(即java.util.NoSuchElementException
)
可能重复的问题是,这些在线IDE不支持用户输入。可能重复的问题是,这些在线IDE不支持用户输入。