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…

参考:

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 实用cmd指令(1)

    实用cmd指令(1)

  • ubuntu svn命令 tab补全(linux安装svn客户端)

    ubuntuSVN命令大全1、将文件checkout到本地目录svncheckout path(path是服务器上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件svn add file例如:svn add test.php(添加te

  • hypervisor kvm_docker vmware

    hypervisor kvm_docker vmwareLinuxhypervisor介绍荣涛2021年10月14日1.引言管理程序对操作系统所做的事情就像操作系统对进程所做的大致相同。它们为执行提供隔离的虚拟硬件平台,从而提供对底层机器的完全访问的错觉。但并非所有的虚拟机管理程序都是一样的,这是一件好事,因为Linux是关于灵活性和选择的。本文首先简要介绍虚拟化和管理程序,然后探讨几个基于Linux的管理程序。2.平台设备模拟平台虚拟化是关于在两个或多个操作系统之间共享一个平台,以便更有效地利用资源。但平台不仅仅意味着处理

  • 电阻电容电感的常用标注方法(手机电容和电阻的区分)

    认识电容及电容电阻的标注   一、认识电容及电容的标注①电容的功能和表示方法。由两个金属极,中间夹有绝缘介质构成。电容的特性主要是隔直流通交流,因此多用于级间耦合、滤波、去耦、旁路及信号调谐。电容在电路中用“C”加数字表示,比如C8,表示在电路中编号为8的电容。②电容的分类。电容按介质不同分为:气体介质电容,液体介质电容,无机固体介质电容,有机固体介质电容电解电容。按极性分为:有极性电容和无极性电

  • grub修复系统引导_grub无法引导windows

    grub修复系统引导_grub无法引导windowshttp://blog.chinaunix.net/u/24866/showart_2118188.html这是原创地址,写的也很详细~ 转载于:https://blog.51cto.com/1866045/364779

  • 各种有趣vbs,bat脚本[通俗易懂]

    各种有趣vbs,bat脚本[通俗易懂]短信轰炸.vbs门罗币挖矿.vbs开机自启.vbs开3389+非net创建管理用户+Shift后门+自删除脚本.vbs去密码.vbs清除3389远程桌面连接痕迹.bat清除日志.bat

发表回复

您的电子邮箱地址不会被公开。

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