java.util.Scanner next()、nextLine()、nextInt()的区别

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

next()、nextLine()、nextInt()是scanner内置的方法。
使用nextLine()方法时,不将空格看做是两个字符串的间隔,而是看作字符串的一部分,返回时,它作为String类型一并返回
使用next()方法时,将空格看作是两个字符串的间隔
使用nextInt()方法时,与next()方法类似,只是它的返回值是int类型的,依旧将空格看作是两个输入的数据的间隔
(当使用nexInt()方法时,只能输入int类型的数据。)

next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

String n=sc.nextLine();
 String n=sc.next();
 int n=sc.nextInt();

Scanner a=new Scanner(System.in);
        System.out.println("使用nextLine()方法,并且输入为:");
        int n=a.nextInt();
        System.out.println("输出为:");
        System.out.println(n);

Scanner b=new Scanner(System.in);
        System.out.println("使用nextLine()方法,并且输入为:");
        String n=b.nextLine();
        System.out.println("输出为:");
        System.out.println(n);
Scanner c=new Scanner(System.in);
String n=c.next();
System.out.println(n);