java - Scanner 对象的输入行在正式打印命令之前打印
问题描述
我在下面有一个以下方法,它接收一个包含 N 行的 Scanner 对象,每行都有一个单词字符串。
public static void longestName(Scanner console, int n) {
for (int i = 1; i <= n; i++) {
System.out.println("name #" + i + "?" + " " + console.nextLine());
}
}
而不是这个(预期输出)......
name #1? roy
name #2? DANE
name #3? Erik
name #4? sTeFaNiE
name #5? LaurA
...我得到这个
roy
name #1? roy
DANE
name #2? DANE
Erik
name #3? Erik
sTeFaNiE
name #4? sTeFaNiE
LaurA
name #5? LaurA
为什么扫描仪对象的“nextLine()”在实际打印命令输出之前打印一次?
****** 这是我正在使用的一个练习题,他们只要求我定义一个方法“longestName”,该方法接受一个 Scanner 对象和一个表示 Scanner 对象中名称数量的整数“n”。
上面的输出是该方法与具有“n”个名称的 Scanner 对象一起使用的结果。
解决方案
这将为您提供预期的输出:
System.out.println("name #" + i + "?" + " ");
console.nextLine();
推荐阅读
- angular - 如何使用Angular 6从带有参数的服务器获取URL
- css - CSS - 内部 div 不占用可用高度
- android - ionic:添加 android 和构建 apk 时出错
- java - onProgressUpdate 可以在活动中重载吗?
- r - `$<-.data.frame`(`*tmp*`,循环为 R 中的错误
- android - 发送(较大)文件有效负载时附近的连接断开连接
- javascript - 基于EJS中特定页面条件的文件css/js调用
- dart - 如何在 BottomNavigationBarItem 上隐藏标题
- java - 错误消息说我没有重写抽象方法,虽然我做到了
- apache-spark - 从 rest api 提交 sparkr 作业