gpt4 book ai didi

java - 当我从用户那里获取输入时,为什么我的 java 代码会抛出错误?

转载 作者:行者123 更新时间:2023-11-30 01:41:56 25 4
gpt4 key购买 nike

我试图通过返回 Object 的方法简单地从用户那里获取输入。由于某种原因,抛出此错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61) Caused by: java.util.NoSuchElementException: No line found at java.base/java.util.Scanner.nextLine(Scanner.java:1651) at candle.Main.getValue(Main.java:381) at candle.Main.runFile(Main.java:979) at candle.Main.main(Main.java:1013) ... 5 more

这是一个代码片段:

System.out.print("> ");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();

任何人都可以解释如何完成这项工作,或者指出我做错了什么吗?谢谢。

最佳答案

这个问题之前已经被问过。

  1. 基本答案是:

    • 如果没有可供读取的行,扫描器将抛出 java.util.NoSuchElementException: No line found

    • 解决办法是:

      Scanner scanner = new Scanner(System.in);
      String input = null;
      if (scanner.hasNextLine()
      scanner.nextLine();
  2. 该问题也可能会发生:

    • 如果您过早关闭扫描仪(例如,在其他方法中使用 input.close())

    • 如果您的输入包含特殊字符,那么您应该明确指定所需的编码。示例:Scanner Scanner = new Scanner(new FileInputStream(filePath), "UTF-8");

所有这些问题都在这里讨论:

关于java - 当我从用户那里获取输入时,为什么我的 java 代码会抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634889/

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