这段代码为什么没有执行while里面的输入就报错了?在while里面不是应该继续等待控制台输入吗?为什么直接往后执行了
这段代码为什么没有执行while里面的输入就报错了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- a5156520 2022-10-01 10:29关注
应该是因为第13行in.nextLine()这行代码的原因,nextLine()遇到回车就会结束,而前面第8行的in.nextInt()读取一个整数后,丢弃了一个回车键到缓冲区,而这个回车键之前的内容被nextLine读取,但是这个回车之前没有内容,所以返回空字符串,然后遇到后面的代码就报错了。
可以在第8行后,加一句in.nextLine()把前面丢弃的回车键读走即可。参考资料:
java中next()和nextline()用法区别_做难做的事的博客-CSDN博客_nextline
java 输入 Scanner中 next(),nextInt(),nextLine()辨析_yanerkouxin的博客-CSDN博客_java sc.nextint
Java HashMap getOrDefault() 方法 | 菜鸟教程
Java遍历Map集合的四种方式
Java语言程序设计基础篇(原书第8版) 第9章 字符串和文本I/O 9.7 文件输入和输出 9.7.3 Scanner如何工作(第263页)
测试代码如下:import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Scanner; public class nextLineTest { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int x = in.nextInt(); in.nextLine(); HashMap<Integer,Long> hashmap = new HashMap(); HashSet<Integer> set = new HashSet(); // https://blog.csdn.net/qq_39593222/article/details/125157841 //https://blog.csdn.net/yanerkouxin/article/details/124000633 //https://www.runoob.com/java/java-hashmap-getordefault.html //http://c.biancheng.net/view/6872.html //Java语言程序设计基础篇(原书第8版) 第9章 字符串和文本I/O 9.7 文件输入和输出 9.7.3 Scanner如何工作(第263页) while(x>0) { String str = in.nextLine(); String[] s = str.split(" "); set.add(Integer.parseInt(s[0])); hashmap.put(Integer.valueOf(s[0]), hashmap.getOrDefault(Integer.valueOf(s[0]), 0L)+Integer.parseInt(s[1])); x--; } System.out.println("Set集合:"); for(int i:set) { System.out.print(i+" "); } System.out.println("\nMap键值对:"); for(Map.Entry<Integer, Long> entry:hashmap.entrySet()) { System.out.println(entry.getKey()+":"+entry.getValue()); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 请问各位,如何在Jetson nano主控板的Ubuntu系统中安装PyQt5
- ¥15 MAC安装佳能LBP2900驱动的网盘提取码
- ¥400 微信停车小程序谁懂的来
- ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
- ¥15 安装ubantu过程中第一个vfat 文件挂载失败
- ¥20 GZ::CTF如何兼容一些靶机?
- ¥15 etcd集群部署问题
- ¥20 谁可以帮我一下问一下各位
- ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
- ¥150 求 《小魔指》街机游戏机整合模拟软件