1 需求
当我们需要使用java
从键盘输入数据时,使用到Scanner
进行输入字符串时,可能会遇到一些小bug
,比如:
1 | public class Input { |
输出:
为什么会这样呢?
2 原因解释
因为scanner.nextLine()
会接收一行数据,而scanner.next()
是接收有效字符(除空格和enter
等之外的所有字符)之前的数据,所以当输入完age
值后,按下enter
键之后,这个enter
被scanner.nextLine()
给吸收了,也就被其当做一个值给接收了,所以就自动跳过了中间的name
,所以会导致出现bug
。
不过没关系,解决办法就是在需要真正接收的变量前加一个空的scanner.nextLine()
,将上一个输入的enter
给接收了,这样就不会出bug
了。
改正代码:
1 | int age = scanner.nextInt(); |
参考文献
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment