Scanner中的nextLine()与next()
参考价值:已完结、可以参考
情景回顾
今天练习代码,遇见了以下情况:
(1)
(2)
(3)
(4)
基本就是只要nextLine()前面有输入语句,那么nextLine()就会直接结束不会输入任何字符串。而将nextLine()换成next()就不会有这种情况。
这是为什么呢?
nextLine()相比于nextInt()、nextDouble()、next()等方法缺少一个类似于保护机制的东西。
比如:
当我们输入“1”并按下回车键时,“1”会被nextInt()接受,而回车却被留在标准输入流当中了,如果下一个就是nextLine(),那么nextLine()就会直接读取到回车键,然后执行,这样我们就无法输入任何数据。
那么为什么把换成next()就没事了呢,因为next()如果没有读取到任何数据是不会结束的,nextDouble()、nextInt()等都有这个保护机制。
比如:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 青春玩命的年代!
评论