Java--next()方法和nextLine()方法的区别
首先我们来看一下代码:
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String str2 = scanner.nextLine();//用nextLine方法接收
System.out.println("输出的内容为:"+str2);
System.out.println("请输入:");
String str1 = scanner.next();//用next方法接收
System.out.println("输出的内容为:"+str1);
scanner.close();
}
}
接下来看一下运行效果:
第一次输入:两个输入都无空格

两个输出都和输入一样。
第二次输入:两个输入都有空格

前一个输出与输入一致,后一个只输出了空格前的内容。
然后nextLine方法和next方法交换一下位置
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String str1 = scanner.next();//用next方法接收
System.out.println("输出的内容为:"+str1);
System.out.println("请输入:");
String str2 = scanner.nextLine();//用nextLine方法接收
System.out.println("输出的内容为:"+str2);
scanner.close();
}
}
再来看一下运行效果:
第一次输入:两个输入都……显然,它并没有给我输入两次的机会……

输入第一个后回车输出结果后直接运行结束了……

第一个输入有空格,结果分两次输出了,当然也是仅有一个输入就运行结束了……
结合上面几次运行效果,可以总结出next方法和nextLine方法的一些区别:
next():
-
一定要读取到有效字符后才可以结束输入
-
对输入有效字符之前遇到的空格,next()会自动将其去掉
-
只有输入有效字符后才将其后面输入的空格作为分隔符或者结束符
-
next()不能得到带有空格的字符串
nextLine():
-
以Enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符
-
可以获得有空格的字符串
-
浙公网安备 33010602011771号