next()和nextLine()详解
Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:
- next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;
- nextLine()吸取字符前后的空格/Tab键,回车键截止。
-
简单说,next读到空格前,nextLine读回车即停
简要样例:
String s1=scanner.nextLine();
String s2=scanner.next();
System.out.println(s1);
System.out.println(s2);
//输入:
> abc def ghi
> abc def
//输出:
> abc def ghi
> abc
String s1=scanner.next();
String s2=scanner.nextLine();
System.out.println(s1);
System.out.println(s2);
//输入:
> abc def ghi
//输出:
> abc
> def ghi
next()读到abc为止,因为遇到abc后面的空格,而空格被nextLine()读取
String s1=scanner.next();
String s2=scanner.nextLine();
System.out.println(s1);
System.out.println(s2);
//输入:
> abcdef
//输出:
> abcdef
>
abcdef被next()读取,遇到回车停止,回车被nextLine()读取。
注意:nextLine()前面如果还有输入语句遇到回车键,可以在前面加一句nextLine()来吃掉回车符。