gpt4 book ai didi

java - 扫描仪 next() 为某些在线编译器抛出 NoSuchElementException

转载 作者:行者123 更新时间:2023-12-03 23:11:33 25 4
gpt4 key购买 nike

这似乎是一个常见问题(多次询问),但我无法找到这种行为的解释。以下代码在一个编译器中工作,但抛出 Exception in thread "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);

测试于 https://www.compilejava.net/https://www.codechef.com/ide它抛出异常。但是,在某些编译器上它可以正常工作。这种行为有什么原因吗(比如 JDK 的变化等等)?

最佳答案

由于枚举中没有更多元素,因此引发此异常。

the documentation :

Thrown by the nextElement method of an Enumeration to indicate that there are no more elements in the enumeration.



一些在线 IDE 根本不允许用户输入,在这种情况下,一旦您尝试读取用户输入,就会抛出异常。
  • 它适用于 TutorialsPoint IDE,因为它允许用户输入。
  • 它不适用于 codechefcompilejava IDE,因为这些 IDE 不支持用户输入。

  • 但是,还有第二种方法可以在 codechef 上添加用户输入。只需在 Custom Input 上打勾复选框并提供任何输入。然后它将编译。



    此异常的另一个原因,即根本没有更多的用户输入,可以在调用 s.next() 之前处理。 ,只需检查 s.hasNext()查看扫描仪是否有另一个 token 。
      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);

    关于java - 扫描仪 next() 为某些在线编译器抛出 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766488/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com