Question:
Scanner类的nextLine()放在其他nextXxx()或next()方法下会失去录入机会
-
如果nextLine()之前有其他Scanner类的next方法时,会受到影响,失去录入机会
-
将第一个nextLine()方法提到最前面,使其前面没有其他Scanner类的next方法
-
nextLine()方法之间不会相互影响
-
nextLine()之前有next()方法,两个方法之间有其他代码,nextLine()方法也会收到影响
Answer:
-
next()和nextLine()的区别
Scanner是一个扫描器,录入到键盘的数据,先存到缓存区等待读取,判断读取结束的标示是分隔符;比如空格,回车,tab 等。
nextLine():接收缓冲区中所有的字符,在遇到回车换行符时停止,回车换行符也会接收掉
next():接收到缓冲区第一个有效字符(之前的分隔符自动过滤,不接收)开始,遇到的第一个分隔符结束(tab键,空格,回车换行),分隔符不会接收掉
-
nextLine()的使用场景
单独使用nextLine()可以清空缓冲区,避免缓冲区剩余的数据对下次输入有影响