在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。

例如:

String s1 = input.next();
String s2 = input.next();
System.out.println(s1);
System.out.println(s2);
System.out.println(s1 + s2);
当键盘输入 ABC DEF (注意这一行中有三个空格)时,
打印出ABC
DEF
ABCDEF

而nextLine()可以接收空格或者tab键,其输入应该以enter键结束。

例如:

int i1 = input.nextInt();
String s1 = input.next();
String s2 = input.next();
String s3 = input.nextLine();            

System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(i1);
System.out.println(s1 + s2);
System.out.println(s1 + s2 + s3);
当键盘输入4
         ABC
         DEF 时,
    打印出ABC
         DEF
         
         4
         ABCDEF
         ABCDEF

上面s3出现空白是s3吸收了s2的回车,导致s3直接结束无法输入也就是下面说的,

当next()和nextLine()连用时,nextLine()会自动接收next()函数的结束符回车,所以为了避免数据接收有误,要避免二个函数连用。