next()、nextInt()和nextLine()的区别?
next()
next()接收字符串类型的数据,不接受特殊字符。
特殊字符:Tab,Enter等。
nextInt()
nextInt()只能接收int类型的数据。
nextLine()
nextLine()相对于next()可以接受特殊字符。
举例说明
例1
代码演示:
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
int i = sc.nextInt();
System.out.println();
System.out.print("请输入一个字符串:");
String next = sc.next();//next()
System.out.println(i);
System.out.println(next);
}
}
运行截图:
例2
代码演示:
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
int i = sc.nextInt();
System.out.println();
System.out.print("请输入一个字符串:");
String next = sc.nextLine();//nextLine()
System.out.println(i);
System.out.println(next);
}
}
运行截图:
分析例1与例2为什么不同?
由于next()接收字符串类型的数据,但不能接受特殊字符(Enter)。所以例1的代码输入完123之后,直接跳到输入下一个字符串;
由于nextLine()接受字符串类型数据的时候,可以接受特殊字符(Enter),所以例二接受完数字123之后,按下Enter,Enter被nextLine()接收了,所以不会第二个输入语句了。