在使用 Scanner 类时,
next() 表示读取到有效数据后,才会往下执行。
而 nextLine() 不一样,只要它的前面出现个回车等分隔符,它不管有没有读取到数据,它都会去读取并往下执行。
看下面的一个键盘录入的例子吧!
Scanner s = new Scanner(System.in);
String ss = s.nextLine();
System.out.println("............."+ss); //这里,只要上面你按下回车了,不管有没有录入数据,它都会往下执行,只是数据为空
而如果你使用String st = s.next(); 它就要一定读到有效数据,不然不会往下执行。
所以,要注意下面的程序了
Scanner s = new Scanner(System.in);
int a = s.nextInt();
String ss = s.nextLine(); //这里是不会等待用户输入的,直接输出下面两个语句了,因为在上面 读取一个 整数后 ,你按了回车。
System.out.println(a);
System.out.println(ss);