next()和nextLine()的区别

1、next():一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。所以 next() 不能得到带空格的字符串。

使用 nextInt() 方法时,与 next() 方法类似,只是它的返回值是 int 类型的,依旧将空格看作是两个输入的数据的间隔。

2、nextLine():是遇到回车符才结束,所以可以得到带空格的字符串。

public class Test {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("使用next()方法,将空格作为间隔符。输入为:");
        while (sc.hasNext()) {
            System.out.print("输出为:");
            String n = sc.next();
            System.out.print(n);
        }
    }
}

public class Test {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("使用nextLine()方法,将空格作为间隔符。输入为:");
        while (sc.hasNext()) {
            System.out.print("输出为:");
            String n = sc.nextLine();
            System.out.print(n);
        }
    }
}

public class Test {
	public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("请输入字符串(next):");
        String str = input.next();
        System.out.println(str);

        System.out.println("请输入字符串(nextLine):");
        String str1 = input.nextLine();
        System.out.println(str1);
    }
}

如图所示,当我们输入javaweb spring springmvc(每个中间用空格分隔)并按回车后。调用input.next()方法时,会扫描输入的字符串,当扫描到第一个空格时将空格前面的javaweb输出并结束;调用input.nextLine()方法时,接着从javaweb后的空格开始扫描,一直到扫描到回车符停止,将回车符前的字符串输出(包括第一个空格)。

posted @ 2021-01-24 15:45  莫哈德  阅读(255)  评论(0编辑  收藏  举报
/*地址栏logo*/