java中Scanner类对象方法nextLine()和nextInt()的小问题

java中Scanner类对象方法nextLine()和nextInt()的小问题

在做一次老师布置的作业中,我发现了这样的一个小问题,现在分享给你们。

在这里插入图片描述
你们觉得上面的输入方式有没有问题,如果你觉得没有问题,那么恭喜你,和我入了一样的坑,运行,将会出现下图现象。
在这里插入图片描述
可以看到,再输入第二个同学数据的时候,学号我没有输入,程序自己直接跳过,它应该是在某个地方读取了某个字符,导致我们没有输入直接进行下一个。当我们把nextLine()方法换成next()方法后,发现不会出现一点问题。我们都知道nextLine()方法是读取一行,到回车结束,而next()方法遇到空格就会结束。我们有理由相信nextLine()方法结束的原因是在某个地方读取到了空格字符。那这个空格字符从哪来的呢?
经过进一步的观察发现,只有在使用同一个Scanner类的对象,且nextInt()方法在nextLine()方法的前一次调用,就会出现上面的这个状况,也就是是说在Scanner类对象用nextInt()方法从键盘读取了一个数据后,且此对象·下一次调用的是nextLine()方法时,它会自动的在某个地方加入空格,这是最简单的介绍,还有可能涉及更深层次的原因,这里我就不说,我也不懂!,啊哈哈哈哈哈!
希望大家明白这个小问题!少跳坑!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值