Java中NoSuchElement异常求助:本地正常在线OJ运行出错
问题修复方案
异常原因
你在循环内部重复创建Scanner实例,导致输入流被多次绑定。当输入流数据耗尽后,新创建的Scanner调用nextLine()时会因无法获取输入元素抛出NoSuchElementException。
代码修正点
- 将
Scanner初始化移到循环外,整个程序只创建一次实例 - 增加
hasNextLine()判断,避免输入流提前结束时触发异常 - 你的反转逻辑本身符合题目“将反转句子恢复为正常语序”的要求,无需调整
修正后的代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNextLine()) { String str = scan.nextLine(); if(str.equals("END")){ break; } for (int i = str.length()-1; i >=0; i--) { System.out.print(str.charAt(i)); } System.out.println(); } scan.close(); } }
效果说明
修正后的代码会逐行读取输入,遇到END就终止循环且不会输出END;同时能正确将每行反转的句子恢复为正常语序,完全匹配预期输出。
内容的提问来源于stack exchange,提问作者sera
相关产品推荐
相关产品推荐

