java - 新手使用 Scanner 对象进行拼写检查
问题描述
Scanner kb = new Scanner(System.in);
String plt;
String msr;
double wgh;
System.out.println("'Welcome to interplanetary weight calculator.");
Thread.sleep(2500);
System.out.println("");
System.out.println("Please choose one planet for calculation:");
System.out.println("1.Venus 2.Mars 3.Jupiter");
System.out.println("4.Saturn 5.Uranus 6.Neptune");
System.out.print(">");
do {
while (!kb.hasNextLine()) {
System.out.println("That's not a planet!");
kb.nextLine(); // this is important!
}
plt = kb.nextLine();
} while (plt.equalsIgnoreCase("Venus"));
System.out.println("Thank you!Now will do calculation on " + plt); }}
我想在行星之间做一个重量计算器,我也想要一个拼写检查器,但是当我写东西时,它只会打印出“谢谢!现在,将在……上进行计算”。
它也打印出整数。我找不到我在哪里做错了。
解决方案
本质上,发生的事情是您的循环将运行一次,您可以输入一些内容,然后它将退出循环,因为除了“venus”(大小写的任意组合)之外的任何内容都将退出循环。这就是为什么它也会打印数字等。
解决方案可能是添加一个 ! 到条件的开始。这将反转条件,这意味着现在只有输入“venus”会导致循环退出,这将导致程序继续运行循环以下的所有内容。但是,仍然不会出现任何类型的错误消息。拼写检查和错误处理将以不同的方式实现。
推荐阅读
- javascript - 递增日期在 javascript 中无法按预期工作
- python - 如何通过使用python函数从文本文件中导入坐标来计算距离
- python - 如何修复 Python 中的“您必须使用 dtype float 和 shape [?,1,680,1] 为占位符张量“Placeholder_2”提供值?
- java - Dagger中的单例方法
- android-studio - 在 android studio 模拟器上运行 react native 应用程序
- c# - 如何在 ASP.NET Core 中处理跨站点脚本
- java - 无法为 oracle-java8-installer 获取 Java 包
- r - 如何不使用嵌套的 for 循环并改进我的 R 代码?
- .net - Azure 函数 - 从另一个函数调用函数
- c# - 在签名中添加 LTV 使 pdf 使用 C# 无效