Scanner.nextLine() 不阻塞问题

Dan淡淡的心 2019-03-29 12:02:28
...全文
629 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jam-King 2020-11-15
  • 打赏
  • 举报
回复
哈, 我也以为是 nextLine() 不阻塞
Dan淡淡的心 2019-03-29
  • 打赏
  • 举报
回复
偶然间发现这个问题 不明白为什么会这样 反之将 nextLine() 与 NextInt交换位置就正常了
Dan淡淡的心 2019-03-29
  • 打赏
  • 举报
回复
好的 谢谢
余生不知年 2019-03-29
  • 打赏
  • 举报
回复 1
你好,我把你的代码敲了一下,程序写得没问题输出也跟你一样,那么这个问题出在哪呢,问题就出在nextLine()方法上,xextline()方法是识别空格等空白符的,而上一个nextInt()方法是以空白符结束的,而nextInt()方法是不接受这个空白符的他只是以空白符结束并不吸收,所以空白符就留给下一个方法了,若想避免这个问题你可以将nextInt()方法换成next()方法。以上是我的分析望你自习看看。 谢谢
qybao 2019-03-29
  • 打赏
  • 举报
回复
不是不阻塞,是nextInt时数字的后面有个回车符还没被读入,当你nextLine的时候就把这个回车符读入了
你在int count = scan.nextInt()读入数据后打印一下System.out.printf("%s", scan.hasNextLine());看看就知道了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧