项目场景:
使用Scanner的nextLine()方法获取数据的时候出现了问题,一般发生在和next(),nextInt()等类似方法混用的时候
问题描述
例如:以下这段代码,本意应该是在控制台输入两行数据,输入一行立刻输出一行。
Scanner in = new Scanner(System.in);
String s1=in.next();
System.out.println(s1);
String s2=in.nextLine();
System.out.println(s2+"==");
实际上输出的结果
可以看到我明明只输入了一行代码却执行完了
原因分析:
输入完按下回车时,next()或者nextInt()会读取有效数据并把光标停在回车之前,这样nextLine()会读到上一行代码遗留的那个回车键然后直接输出,从而产生以上问题