栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Scanner next()和nextLine()的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Scanner next()和nextLine()的区别

测试完整字符串:哈哈 呵呵 笑嘻嘻
scanner.next():读取输入内容中第一个没有空白符的内容。在它之后的读取操作(next或nextLine)会继续读,直到流中的内容被读完。比如第一次读的是"哈哈",第二次读的是"呵呵"。scanner.nextLine():读取输入内容中整行内容。


示例1:nextLine+nextLine

        Scanner input = new Scanner(System.in);
        System.out.println("请输入字符串(nextLine):");
        String str = input.nextLine();
        System.out.println(str);

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

结果:

示例2: nextLine+next

        Scanner input = new Scanner(System.in);
        System.out.println("请输入字符串(nextLine):");
        String str = input.nextLine();
        System.out.println(str);

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

结果:

 示例3:next+next

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

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

结果:

示例4:next+nextLine

 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);

结果:

 

其实,就是输入的完整字符串->缓冲到流中->读取->流中还有剩余字符串,继续读取...

所以,nextLine不会影响后面的next或nextLine,但是next会影响后面的next和nextLine。

(因为next读的是流中第一个没有空白符的内容,一次可能没读完;nextLine读的是流中整行的内容,一次读完)

扫描器跳过录入的问题

要弄清楚这个问题,首先要知道,对于用户录入的内容,会带上换行符写到一个缓冲流中,next方法在读取的时候会忽略换行符,nextLine方法在读取的时候会带上换行符,所以next+next/nextLine+nextLine/nextLine+next不存在跳过录入的问题,即一个录入结束另一个录入会等待用户的操作。还有一点,就是next和nextLine都会以回车符作为结束符。

场景:next+nextLine

原因:缓冲区还有换行符,第一次录入结束后,第二次准备录入的时候,读出了缓冲区的换行符,直接换了一行,即光标从等待录入的一行跳到下一行去了,然后也就结束了(可以理解为默认输了一个换行符然后回车结束了)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/295537.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号