【JAVA】Scanner的next()、nextInt()、nextLine()读取机制

nextInt():读取一个整数,以空格键、Tab键或Enter键等结束符结束。

PS:

  • 不会读走结束符!
  • 会自动跳过前面的结束符
  • 如果输入多个数字中间用空格隔开,则只会读取第一个数字,下个nextInt()将会直接读取数字跳过输入

例如:

输入“123”实际输入为“123\n”,nextInt只会读取123,\n”便留在缓存区等待


next():读取一个字符串,以空格键、Tab键或Enter键等结束符结束。

PS: 

  • 不会读走结束符!
  • 会自动跳过前面的结束符直到读取一个有效的字符串之后,next()方法才会将其后输入的空格键、Tab键或Enter键等视为结束符。

nextLine():读取一个字符串,以Enter键结束符结束。

PS:

  •  nextLine()的结束符只是Enter键!
  • nextLine()的结束符也会被nextLine()读取,但是它并不会作为方法返回值的一部分,只是单纯吸收!
  • 如果nextLine()之前用了nextInt() / nextDouble() / next() 等方法,这些方法遗留在缓冲区的空格字符就会被nextLine()读走,此时就会造成一个”数据无法读取”的现象,但其实不是的,它是有读取数据的,只不过它读取的是上一个nextInt() / nextDouble() / next() 等方法遗留下来的结束符!
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值