nextline函数_nextLine()和next()的区别和使用方法

nextline函数_nextLine()和next()的区别和使用方法最近在笔试,刷剑指Offer时,都是只需要把方法实现了就行。但是!!!笔试时候会发现,大部分会要求你把main函数也code出来,真是醉了,第一次笔试时候搞的晕乎乎的…..废话不多说,那么在写输入输出中,肯定要用到Scanner类了,其中不少都需要读取一个整数或者一个整型数组。当读入整数时(以int为例),直接就nextInt()就好,可是当读入一个整型数组时(数字之间用空格隔开),就涉及到用…

大家好,又见面了,我是你们的朋友全栈君。

最近在笔试,刷剑指Offer时,都是只需要把方法实现了就行。但是!!!笔试时候会发现,大部分会要求你把main函数也code出来,真是醉了,第一次笔试时候搞的晕乎乎的…..

废话不多说,那么在写输入输出中,肯定要用到Scanner类了,其中不少都需要读取一个整数或者一个整型数组。当读入整数时(以int为例),直接就nextInt()就好,可是当读入一个整型数组时(数字之间用空格隔开),就涉及到用nextLine()和next()了。看了一下网上的分析,都很到位吗,在这里我在总结一下希望给大家提供一些思考,于此同时也给自己加深一下记忆!

next()

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。比如,在控制台输入“  gjm  gjm ”时,一次next()读入进来的仅仅是”gjm”。它不能得到带空格的字符串的!

nextLine()

nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。比如,在控制台输入“  gjm  gjm ”时,一次nextLine()读入进来的结果是”  gjm  gjm “。它是可以得到带空格的字符串的!

网上有个小例子,我看着挺好,如下:

1 importjava.util.Scanner;2

3 public classNextTest {4 public static voidmain(String[] args) {5 test1();6 //test2();

7 }8

9 public static voidtest1() {10 String s1,s2;11 Scanner sc=newScanner(System.in);12 System.out.print(“请输入第一个字符串:”);13 s1=sc.nextLine();14 System.out.print(“请输入第二个字符串:”);15 s2=sc.next();16 System.out.println(“输入的字符串是:”+s1+” “+s2);17 }18 public static voidtest2() {19 String s1,s2;20 Scanner sc=newScanner(System.in);21 System.out.print(“请输入第一个字符串:”);22 s1=sc.next();23 System.out.print(“请输入第二个字符串:”);24 s2=sc.nextLine();25 //s2=sc.nextLine();26 System.out.println(“输入的字符串是:”+s1+” “+s2);27 }28 }

结果:

当运行test1();时,结果如下示:

nextline函数_nextLine()和next()的区别和使用方法

当运行test2();时,结果如下示:

nextline函数_nextLine()和next()的区别和使用方法

即在我刚输入完home后,按下回车,直接弹出结果,程序执行完毕【内心呼啸,tmd我第二个字符串还没输入呢就给劳资返回结果了】。

通过分析发现:是next()读不到回车的,而是将回车作为分隔符,并且留给了nextLine(),nextLine()毫不客气,直接读入,然后结束。

故想要输出和test1()一样的结果,需要将test2()中nextLine()后再加一个nextLine(),第一个用来读next()留下的回车分隔符,第二个用来读work。故如上所示,将第25行程序加入,然后执行,就会发现结果和test1()一样。

Over…

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133571.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月8日 上午9:46
下一篇 2022年6月8日 上午9:46


相关推荐

  • DotNetty使用之Echo

    DotNetty使用之Echo一 DotNetty 介绍 DotNetty 是微软的 Azure 团队 使用 C 实现的 Netty 的版本发布 不但使用了 C 和 Net 平台的技术特点 并且保留了 Netty 原来绝大部分的编程接口 让我们在使用时 完全可以依照 Netty 官方的教程来学习和使用 DotNetty 应用程序 那 Netty 又是什么尼 Netty 是一个提供 asynchronous driven 异步事件驱动 的

    2026年3月19日
    1
  • phpstrom 激活码【2021.10最新】

    (phpstrom 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    59
  • dotnet publish 不生成pdb文件

    dotnet publish 不生成pdb文件文章目录引言解决方案直接修改`.csproj`文件通过vs修改引言随着项目的体积越来越大,导致publish的时候文件越来越多,然而生产环境中其实pdb调试文件并没有什么作用(remotedebug)除外,所以也就灵机一动想着是否可以不生成呢?解决方案直接修改.csproj文件<PropertyGroupCondition=”‘$(Configuration)|$(Platform)’==’Release|AnyCPU'”><DebugType>none&lt

    2022年5月11日
    61
  • linux smartctl 命令,Linux smartctl命令

    linux smartctl 命令,Linux smartctl命令硬盘的SMART是S.M.A.R.T.的缩写,全称是“Self-Monitoring,AnalysisandReportingTechnology”,中文意思是“自我监测分析与报告技术”,它可以对硬盘的温度、内部电路、盘片表面介质材料等进行监测,力求及时分析出硬盘可能发出的问题,并发出警告,从而保护数据不受损失。在Linux上使用smartctl命令查看硬盘的SMART信息。安装工具:yu…

    2022年6月29日
    32
  • 霍夫曼编码代码matlab,matlab 实现霍夫曼编码

    霍夫曼编码代码matlab,matlab 实现霍夫曼编码编码内容包括 用 matlab 实现霍夫曼编码 并且求出相应的信源熵 平均码长 和编码效率 以下是代码 霍夫曼编码 huffman code 编码思路 根据位置矩阵的变化过程反推生成霍夫曼编码 n input 请输入编码个数 n c fori 1 n fprintf 请输入第 d 个编码 n i c i input endc rand 1

    2026年3月18日
    1
  • 学生注册idea_学生证怎么绑定身份证

    学生注册idea_学生证怎么绑定身份证一、安装进入官网下载适合自己系统的版本,下载地址:https://www.jetbrains.com/idea/download/#section=windows安装中选择适合本机的64位(32位)版本,其他一直next即可二、激活成功教程先下载jar包JetbrainsCrack.jar,把它放到你认为合适的文件夹内,我直接放在了安装目录C:\ProgramFiles\JetBrai…

    2026年2月24日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号