不是重温老话题,但我正在做一个课程的项目,我在一个特定的片段中反复遇到这个错误,在那里我有相同格式的各种其他代码,它们没有给我带来任何痛苦。
public static void addCruise() {
Scanner newCruiseInput = new Scanner(System.in);
System.out.print("Enter the name of the new cruise: ");
String newCruiseName = newCruiseInput.nextLine();
// Verify no cruise of same name already exists
for (Cruise eachCruise: cruiseList) {
if (eachCruise.getCruiseName().equalsIgnoreCase(newCruiseName)) {
System.out.println("A cruise by that name already exists. Exiting to menu...");
return; // Quits addCruise() method processing
}
}
// Get name of cruise ship
Scanner cruiseShipInput = new Scanner(System.in);
System.out.print("Enter name of cruise ship: ");
String cruiseShipName = cruiseShipInput.nextLine();
cruiseShipInput.close();
// Get port of departure
Scanner cruiseDepartureInput = new Scanner(System.in);
System.out.print("Enter cruise's departure port: ");
String departPort = cruiseDepartureInput.nextLine();
cruiseDepartureInput.close();
所以,如上所述,在那次巡航去入式
输入扫描仪之前,我对任何事情都没有遇到任何问题。但是在我提供该行的输入之前,Eclipse抛出了错误,全文如下:
在线程“main”java.util中输入cruise的出发港:Exception。NoSuchElementException:未找到行
为什么我在这里会遇到这个异常,而在程序的其他地方却没有?其他所有东西都按预期进行了测试和运行,但是这个特殊的输入变得令人头疼。
此外,请原谅我的格式错误,我尽了最大的努力,因为编辑不太愿意合作
删除此行,您会注意到您的问题将消失(目前):
cruiseShipInput.close();
这里的问题是您正在关闭 System.in
流,这意味着您无法再接受任何输入。因此,当您尝试使用 System.in
启动新的扫描仪时,它将失败,因为流不再存在。
对于一个简单的项目,正确的答案是不要关闭扫描仪,或者更好的是,只创建一个扫描仪,用于整个项目:
public static void addCruise() {
//Create a single scanner that you can use throughout your project.
//If you have multiple classes then need to use input then create a wrapper class to manage the scanner inputs
Scanner inputScanner = new Scanner(System.in);
//Now do the rest of your inputs
System.out.print("Enter the name of the new cruise: ");
String newCruiseName = inputScanner.nextLine();
// Verify no cruise of same name already exists
for (Cruise eachCruise: cruiseList) {
if (eachCruise.getCruiseName().equalsIgnoreCase(newCruiseName)) {
System.out.println("A cruise by that name already exists. Exiting to menu...");
return; // Quits addCruise() method processing
}
}
// Get name of cruise ship
System.out.print("Enter name of cruise ship: ");
String cruiseShipName = inputScanner.nextLine();
// Get port of departure
System.out.print("Enter cruise's departure port: ");
String departPort = inputScanner.nextLine();
我把我的文件保存在。java文件旁边。 运行: 名称:Koen 得分:44 线程“main”Java.util.nosuchelementException:未找到行 名称:Kevin 得分:55 在Java.util.scanner.nextline(Scanner.Java:1585) 在tetris.fileio.loadHighscores(fileio.Java:41) 在tetris.
我有一个输入框,就像我在这里用来输入我的问题,它的HTML是 每次,我都会尝试输入一些文本 我明白错误了-
对不起,我的问题,但我是一个初学者。请你能支持与扫描仪相关的关心。 “背景”:我写了一些研究扫描仪的代码: 我有一个例外:找不到行。这就是我在输出中得到的结果: 任务:运行失败今天是哪一天?线程“main”java.util.NosuchelementException异常:在java.base/java.util.Scanner.NextLine(Scanner.java:1651)和demoo
我正在尝试使用页面xpath查找并单击元素。当我单击特定元素并使用 firebug 检查它时,即使 firebug 能够同时找到相对路径和绝对路径,路径也从不起作用,并且似乎找不到? 这是火虫识别的相对路径
问题内容: 通过扫描程序读取文件时,程序中出现运行时异常。 我的代码是: 问题答案: 与你需要检查,如果存在与下一行 所以循环变成 是读者返回null 当然在这段代码中,这取决于输入的格式是否正确
当我运行我的Android应用程序从eclipse,我得到这个错误。 从日蚀错误复制粘贴 然而,我的亚洲开发银行就在它说的不在的地方。 出了什么问题,如何解决? 我将cd放入adb所在的目录()中,输入adb并显示 adb是绿色的,这意味着它是可执行的,对吗? 例如,dx也是绿色的,当我在命令提示符中输入dx时,它工作了... adb怎么了?