java中输入next()和nextLine()的区别

1,292 阅读1分钟
1.next() :next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的
空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next
()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串.

2. nextLine() :表示读取一行,nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter
键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。

3.我们可以通过代码来测试
code1:

public class TestNext {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String a = in.next();
        String b = in.nextLine();
        System.out.println("a : " + a);
        System.out.println("b : " + b);
    }
}
输入:
aa aa
输出:
a : aa
b :  aa

Process finished with exit code 0


code2:我们换了一个nextLine() 和next()的顺序

public class TestNext {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String b = in.nextLine();
        String a = in.next();
        System.out.println("a : " + a);
        System.out.println("b : " + b);
    }
}

输入:
aa aa
aa
输出:
a : aa
b : aa aa

Process finished with exit code 0