Scanner类中的nextLine和next方法的区别

next()方法不能读入空格,当遇到空格时,光标会停留在该位置,当下次再调用时,会从非空格处开始读入。

nextLine()方法可以读入空格

相同点:都是遇到回车结束读入过程

nextInt方法

nextInt方法底层实现是调用了next方法,会发生堵塞。当遇到回车时,结束读入,回车并不会读入

==如果接下来用了nextLine()方法,那么nextLine()方法会因为遇到回车而结束,所以会有空字符串被读入==

**解决办法:**在nextLine()方法前再次调用一下nextLine()方法。

 Scanner sc = new Scanner(System.in);
 int num = sc.nextInt();
 sc.nextLine();//消去nextInt()后的回车的影响

 String s = sc.nextLine();
 System.out.println(s);
 System.out.println(num);

Q.E.D.


热爱生活,热爱程序