1、next的意思是接受文字(有效文字),next不接收空格回车以及Tab。(当你输入空格回车Tab的时候接收就会终止,并不会存入到String 变量中去)特别的情况:当在输入的时候先输入了几个空格然后再输入String中内容得时候String变量实际接受的是空格后面的内容,并没有接受前面输入的空格,这部分叫做有效输入。(注意:next方法一定是接收到有效输入以后才能识别空格回车Tab,所以next()方法不能用来吸收回车空格等,吸收回车空格可以用nextLine()方法来吸收)
public static void main(String[]args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入next输入的内容");
String str1 = scanner.next();
System.out.println("next的内容是:"+str1);
}
因为中间输入了空格所以后面的123没有保存到str1中
因为前面有空格所以有效输入是后面的123
2、nextLine的意思是接受下一行文字,它可以接收输入的空格,但是不接收回车(以回车终止)
public static void main(String []args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入nextLine输入的内容");
String str1 = scanner.nextLine();
System.out.println("nextLine的内容是:"+str1);
}
3、当next与nextLine同时使用时
(1)next在nextLine的前面时
public static void main(String []args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入next输入的内容");
String str2 = scanner.next();
System.out.println("请输入nextLine输入的内容");
String str1 = scanner.nextLine();
System.out.println("next的内容是:"+str2);
System.out.println("nextLine的内容是:"+str1);
}
同时满足两个终止条件。
(2)next在nextLine的后面时
public static void main(String []args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入nextLine输入的内容");
String str2 = scanner.nextLine();
System.out.println("请输入next输入的内容");
String str1 = scanner.next();
System.out.println("next的内容是:"+str2);
System.out.println("nextLine的内容是:"+str1);
}
这时候两者皆可以使用。
但我还是觉得最好两者不要同时出现。