java - Scanner.next() 在循环中接收超过 1 个单词
问题描述
我正在我的 java 类中制作游戏,我试图询问用户他们想要玩什么样的难度。但是,由于它处于循环中,因此似乎包含了IN.next()
超过 1 个单词。我如何让它只取第一个单词?
public int configureDifficulty() {
String level = "1";
println("At what difficulty would you like to play at?");
println("Type 1 for easy, 2 for medium, 3 for hard.");
while (true) {
level = IN.next();
try {
return Integer.parseInt(level);
}
catch (NumberFormatException ex) {
println("Try again");
}
}
}
安慰
At what difficulty would you like to play at?
Type 1 for easy, 2 for medium, 3 for hard.
test test test test test
Try again
Try again
Try again
Try again
Try again
即使用户输入超过 1 个单词,如何让我的程序只打印一个“再试一次”行?
解决方案
如果你想处理在同一行输入的单词,你必须使用nextLine
扫描仪中的方法。该方法将返回一个字符串,然后您将不得不解析和编写逻辑。
推荐阅读
- sql - postgresql 中的 sum() 返回单个而不是聚合值
- libgit2 - 使用 libgit2 读取文件
- angularjs - 将 Angular 1.4 升级到更高版本
- batch-file - 批处理文件无法将文件从一个目录复制到另一个目录,然后在 Windows 10 中将其重命名。生成的文件已损坏
- c - Xlib 中的 XPutImage 内部出现奇怪的分段错误
- svg - Svg 元素未按预期显示
- python - 使用逗号分隔符将具有特定值的列标题写入单独的列
- javascript - 具有 setTimeout 函数的算法的时间复杂度是多少?
- asynchronous - 如何在 saga 函数中调用一段时间后的动作?
- java - 有人可以解释一下这是如何为每个整数返回正确的布尔值的吗?