在获取键盘输入时常常用到Scanner,但在连续使用Scanner的过程中会发生缓冲区不空,从而不会阻塞的问题。
System.out.print("请输入用户名:");
String userName=sc.nextLine();
System.out.print("请输入密码:");
String password=sc.nextLine();
在上面的例子中就会出现在"请输入用户名:"处不发生阻塞,直接连续输出"请输入用户名:""请输入密码:"。在键入数据后只会获取第一个输入,并且赋给password,相当于把用户名赋给了密码
采用新建一个Scanner来清空缓冲区这样就不会出现上述的问题了。
Scanner sc=new Scanner(System.in);
System.out.print("请输入用户名:");
String userName=sc.nextLine();
System.out.print("请输入密码:");
String password=sc.nextLine();