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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是pisa测试_PISA测试是什么?[通俗易懂]

    什么是pisa测试_PISA测试是什么?[通俗易懂]“国际高中指南”,给你国际学校选择一站式教育服务,最新国际学校资讯,最全面国际高中课程详情,都能通过“国际高中指南”为你解决,帮助你第一时间获取国际学校动态。为什么你会为孩子选择国际学校?因为这里的教育模式、课程体系能够帮助孩子更早的确立自己的兴趣爱好甚至未来的发展目标,能够帮助孩子全方位提升阅读能力、逻辑思维、数理分析能力等等。那这些能力可以通过什么方式去衡量呢?PISA测试。【PISA】什么是…

    2022年6月6日
  • allure 命令行参数说明

    allure 命令行参数说明一、查看allure命令的帮助文档allure-hallure命令的语法格式allure[options][command][commandoptions]options列表Options:–help命令行帮助文档-q,–quiet切换至安静模式Default:false-v,–verbose切换至冗长模式Default:false–ve…

    2022年7月26日
  • Linux进程间通信

    Linux进程间通信

    2021年8月10日
  • Java 和 Python 有哪些区别?「建议收藏」

    Java 和 Python 有哪些区别?「建议收藏」区别一、python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。二、python是全动态性的,可以在运行时自己修改自己的代码,java只能通过变通方法实现。python的变量是动态的,而java的变量是静态的,需要事先声明,所以javaide的代码提示功能优于pythonide。三,python的产生几十年了,几十年前面向过程是主流,所以用python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在python中是

    2022年7月8日
  • MSYS以及MinGW安装

    MSYS以及MinGW安装MSYS以及MinGW安装文章目录MSYS以及MinGW安装下载并安装MSYS安装基础运行库(glibc,cmake,make等)下载并安装MSYS下载传送门点击下载Windows64bit,双击安装选择安装目录安装完成!!!安装基础运行库(glibc,cmake,make等)$pacman-Syu$pacman-Su$pacman-S–neededbase-develmingw-w64-x86_64-toolchain基础运行库安装完成,现在可以编译Co

    2022年6月16日

发表回复

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

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