next(),nextLine(),nextInt的区别

next()

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

读取完之后会把缓冲区中的“\r”删除掉。

nextInt()

nextInt()方法在扫描到空白符的时候会将前面的数据读取走,但会丢下空白符“\r”在缓冲区中,但是,nextLine()方法在扫描的时候会将扫描到的空白符一同清理掉。

nextLine()

nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。读取完之后会把缓冲区中的“\r”删除掉。

 System.out.println("请输入第一个字符串");
        String str1 = sc.next();
        System.out.println("请输入第二个字符串");
        String str2 = sc.next();
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str1+str2);

str2会被跳过输入,得到“r”

System.out.println("请输入第三个字符串");
        String str3 = sc.nextLine();
        System.out.println("请输入第四个字符串");
        String str4 = sc.nextLine();
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str3+str4);

next Line()会读取“\r”回车键之前的所有数据,包括空格键。并最后把“\r”从缓冲区中删除。

 

System.out.println("请输入第三个整数");
        int str3 = sc.nextInt();
        System.out.println("请输入第四个字符串");
        String str4 = sc.nextLine();
        System.out.println("请输入第五个字符串");
        String str5 = sc.next();
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
        System.out.println(str3+str4+str5);

nextInt()读取整数后,会在缓冲区留下“\r”,str4中无数据,str5为qwe(提示键入值)

 

posted @ 2020-08-03 23:48  炼金术士0z  阅读(461)  评论(0编辑  收藏  举报