java - 线程 java.util.NoSuchElementException 中的异常:找不到行
问题描述
我遇到了一个错误(如标题中所述),因为我正在尝试使用扫描仪类输入字符串。我通过谷歌搜索,我注意到很多人都面临同样的问题,但建议的解决方案似乎都不适合我,因此我在这里问它。我的代码是这样的:
public void displayPrice() {
System.out.println("You need to be above 18 to continue. Do you wish to continue? Yes/No");
Scanner in = new Scanner(System.in);
in.nextLine();
String obj;
obj = in.nextLine();
if (obj.equals("Yes")) {
getPrice();
} else {
System.out.println("Enjoy your day.");
}
in.close();
}
有人可以向我解释我做错了什么吗?非常感谢!
解决方案
package com.sample.test;
import java.util.Scanner;
public class PriceList {
public static void displayPrice() {
System.out.println("You need to be above 18 to continue. Do you wish to continue? Yes/No");
Scanner in = new Scanner(System.in);
in.nextLine();
String obj;
obj = in.nextLine();
if (obj.equals("Yes")) {
getPrice();
} else {
System.out.println("Enjoy your day.");
}
in.close();
}
private static void getPrice() {
System.out.println("Enjoy your day.");
}
public static void main(String[] args) {
displayPrice();
}
}
它不会对我造成任何问题。以下是我的输出。
You need to be above 18 to continue. Do you wish to continue? Yes/No
Yes
YEs
Enjoy your day.
但是扫描仪被您使用了两次。可以修改如下图:
String obj = in.nextLine();
if (obj.equals("Yes")) {
getPrice();
} else {
System.out.println("Enjoy your day.");
}
但是 Scanner 可能会导致问题,所以我总是使用 BufferedReader
package com.sample.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PriceList {
public static void displayPrice() throws IOException {
System.out.println("You need to be above 18 to continue. Do you wish to continue? Yes/No");
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
String obj;
try {
obj = br.readLine();
if (obj.equalsIgnoreCase("yes")) {
getPrice();
} else {
System.out.println("Enjoy your day.");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null)
br.close();
}
}
private static void getPrice() {
System.out.println("It costs $10");
}
public static void main(String[] args) throws IOException {
displayPrice();
}
}
推荐阅读
- python - pymc3 使用 LKJCholeskyCov 的起始值给出了错误的初始能量错误
- excel - 比较重复列中的单元格对Excel VBA
- typescript - 无法在完整日历版本 5.6.0 中使用 slotLabelFormat
- c# - 对弹性搜索结果的并发请求 null
- html - 我的 ionic/angular pwa 的通知徽章出现在 chrome 浏览器图标上,而不是应用程序图标上
- node.js - 在 windows powershell 中使用 npm-v
- git - 我是否需要 git pull main 而不仅仅是 git fetch 才能从最新的 main 重新定位另一个分支?
- python - 如何在 Python 中实现一个函数来计算圆环上两个任意点之间的欧几里得距离
- g++ - 从以极坐标表示的点创建 PCL 库 PointCloud 实例
- angular - 在 Angular 中自动居中地图 - Angular AGM-Direction