Java中Scanner类中的方法next()和nextLine()都是吸收键盘输入的字符,区别:
- next()不会吸取字符前后的空格、Tab键,只吸收字符,开始吸收字符(字符前后不算)直到遇到空格/Tab键/回车键执行结束;
- nextLine()吸收字符前后的空格/Tab键盘,回车键截至。
import java.util.Scanner;
import java.util.Vector;
public class Test01{
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
System.out.println("输入s1:");
String s1=input.nextLine();
System.out.println("输入s2:");
String s2=input.next();
System.out.println(s1);
System.out.println(s2);
}
}
运行结果:
可以看出,next()只吸收了a2,空格后面的就没在管了;nextLine()则输出了回车之前的所有数据。
将next()和nextLine()互换位置:
import java.util.Scanner;
import java.util.Vector;
public class Test01{
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
System.out.println("输入s1:");
String s1=input.next();
System.out.println("输入s2:");
String s2=input.nextLine();
System.out.println(s1);
System.out.println(s2);
}
}
运行结果:
可以看出没有给输入s2的机会,因为next()在前,读取到了空格后,只接收了a1,空格结束,后面的b1,c1和回车被s2接收了,因此s2读取了b1 c1 + 回车键,结束。
总的来说,next()要求接收键盘输入的第一个要求是字符,最后一个是空格、Tab键、回车都会结束;而nextLine()只有接收到回车键才结束。