You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeAcademy Java工作区用户输入报错NoSuchElementException求助

排查Java Scanner的NoSuchElementException异常

报错信息

Output:
Enter your user name
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1554)
at Main.main(Main.java:9)

你的代码

import java.util.Scanner;                       

class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);       

System.out.println("Enter your user name");

String userName = myObj.nextLine();           

System.out.println("The username is: " + userName);
}
}

问题原因及解决办法

  • 在线环境输入机制限制:CodeAcademy的Java工作区和本地IDE逻辑不同,需要你在运行代码前,在平台提供的专门输入框里填写要输入的内容,而非等程序输出提示后再输入。运行前先在输入区域填入用户名,再执行代码即可。
  • 替换nextLine()为next():如果你的用户名不包含空格,可以把myObj.nextLine()改成myObj.next()。部分在线环境对nextLine()的换行符处理存在兼容性问题,next()会读取到第一个分隔符(默认是空格)前的内容,能规避这类异常。
  • 避免提前关闭Scanner:如果后续扩展代码,不要在读取输入前关闭与System.in关联的Scanner,否则输入流会被关闭,再次读取时会抛出该异常。

内容的提问来源于stack exchange,提问作者gracie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:40:40