细节!关于Java中的next与nextLine

article/2025/11/4 15:56:44

目录

一、发现问题

 二、解决问题

(1)输入连续字符串

(2)输入不连续字符(含有空格等)

(3)nextLine()方法在前,next()方法在后

(4)next()方法在前,nextLine()在后

三、分析与总结


一、发现问题

大家编写代码时可能会碰到下面这个问题!编写实验四添加学生信息的方法代码,我最初是使用nextLine(),但因为是首先输入姓名(字符串类型),所以并没有出现问题;但在对代码进行“学号已存在”情况的处理后,不得不将学号的输入放在了最前面,这时出现了下面的问题(无法输入姓名)。

 二、解决问题

那么如何解决这个问题呢?这需要进一步了解它们的差别。

下面是几种同时使用next()和nextLine()但调用顺序不一致的情况,代码的运行结果如下:

(1)输入连续字符串

结果正常

(2)输入不连续字符(含有空格等)

结果:next()方法在空格后的"世界“字符未能读入

(3)nextLine()方法在前,next()方法在后

 

 (4)next()方法在前,nextLine()在后

 

 

结果:空格后的“世界”字符留在了缓冲区,被nextLine()方法输出

**此处类似于C语言的getchar()读取缓冲区的内容

这里的nextLine()就没有输出任何数据

三、分析与总结

观察几个结果,可以发现它们各自的特点和彼此之间的差异:

1.next() :

(1)只能读取有效字符,对有效字符出现之前的所有空格,next() 将自动忽略。

(2)从有效字符出现开始,将其后输入的空格键、Tab键和Enter键等视为分隔符或结束符。

2.nextLine():

(1)读取Enter键出现之前的所有字符,包括带空格的字符。

(2)只能以Enter键作为结束符。

其实我们可以查看API

 

分析后可以发现问题的出现是因为next()或next Int()读取到空白符前的数据时结束了,然后把回车“\r”留给了nextLine();所以上面nextLine()没有输出,但不输出不代表没数据,是接到了空(回车“/r”)的数据。

最后我们需要来解决问题!

方法一:如果对输入的要求不是很高,比如说输入的内容不会出现空格等,直接将nextLine()改成next()即可。实验四对姓名的输入就可以采取这种方法。

方法二:在每一个 next()、nextDouble()  、nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。如下

 

 

整理日期:2022-04-07

分享结束,感谢阅读!

水平有限,恳请指教~

 


http://chatgpt.dhexx.cn/article/EfYAwpDo.shtml

相关文章

NextJs 学习笔记

NextJs 学习笔记 简述 之前使用过 Nuxt3 基于前端框架 Vue3 来开发网站,因为 Nuxt3 很多地方借鉴了基于 React 的 SSR 框架 Next,因此最近抽时间开始学习一下 Next 这个框架。 创建项目 npx create-next-applatest # or yarn create next-app # or p…

next和nextLine的使用

(因为最近在学算法,我只讲实际应用方面的区别,不讲理论) 一、hasNext()与hasNextLine()的区别? 1、hasNext()方法会判断接下来是否有非空字符.如果有,则返回true,否则返回false 2、hasNextLine() 方法会根据行匹配模式…

nextSibling和nextElementSilbing使用以及解决兼容性问题

nextSibling和nextElementSilbing使用以及解决兼容性问题 1、今天学习了 获取兄弟节点 的方法 – nextSibling(获取下一个兄弟节点)、previousSibling(获取上一个兄弟节点) Node.nextSibling 是一个只读属性,返回其父节点的 childNodes 列表…

电脑同时连接内网和外网的方法

前提 首先电脑要有两个网卡,比如一个有线一个无线(常见,本文以此为例),或者两个无线网卡等等。 不论是有线连接内网(外网),还是无线连接内网(外网)&#xff0…

如何设置内网和外网同时使用

工作中,经常需要电脑连接内网服务,内网服务非公网,如果需要电脑连接公网需要进行切换,特别的麻烦。其实,一个电脑可以同时连接两个网络服务。工作中,经常会遇到网络设置的问题。对于工作,一般都…

如何实现在内网和外网同时使用

我们在办公的时候很多情况会遇到内网办公,但是这时候不能够使用外网,今天介绍一种方法解决这个问题: 操作步骤: 01、查看当前的网络配置 通过ipconfig查看当前内网的网络配置,获取到ip、子网掩码、默认网关等信息。 02、完后进…

内网访问外网和外网访问内网的原理

假如设A 和 B 的局域网 IP 相同(192.168.31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢? 解决方案:端口映射 什么是端口映射? 端口映射是 NAT …

[NET]什么是公网、私网、内网、外网?

背景:大家可能对什么是公网、私网、内网、外网有疑惑,今天我们来说下它们之前的区别,已经大家耳熟能详的VPN,SNAT,DNAT的作用。 简单理解公网是相对于私网的,而外网是相对于内网的:

竟然还有人不知道什么是内网、外网?快收藏学习吧!

内网 内网又称局域网(Local Area Network,LAN),是指在某一区域内由多台计算机以及网络设备构成的网络,比如校园网、政府网等,一般方圆几公里。 我们常说的内网,从字面意思上来讲是区别于外网的…

如何理解内网和外网?

如何理解内网和外网? 1.感性上认识 判断内网和外网的重要依据是:是否与广阔的外界网络相连。 在有互联网之前,世界上是先有了局域网,一些公司构建了自己的局域网,供自己公司员工之间进行沟通。对于外来人员来说&…

局域网的主机如何连接外网

一、局域网内主机上外网——NAT 1、内网与外网 (1)内网 即所说的局域网,比如学校的局域网,局域网内每台计算机的 IP 地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网 IP 可以有相同的。 &#xff08…

内网外网同时使用

在很多网络环境中,为了安全起见,不允许内网、外网同时使用。但很多时 候(比如说远程的时候)又需要同时使用外网和内网,下面介绍一下外网、内网 同时使用的操作方法。 环境: 1、电脑的本地网卡设置成内网的…

内网和外网之间的通信

对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外…

探秘 | 如何分辨内网和外网?

目录 💡 什么是外网IP、内网IP? 💡 对于自有路由器上网的用户,可以这样理解外网IP、内网IP 💡 几个大家经常会问的问题 什么是外网IP、内网IP?很多用户都有一个疑惑,如果不使用路由器拨号上网…

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外…

如何理解内网和外网

如何理解内网和外网 写这篇博文的动力来自于,大狗问我什么是内网和外网(没错,我就是站在程序猿顶端的有女票的程序猿:p),一个惊讶,为什么她会问这样的问题,在现实生活中,不管你是不…

内网和外网的区别是什么?

内网和外网的区别重要依据主要是判断它是不是与广阔的外界相连。 内网和外网最大的区别 内网IP局域网,网线都是连接在同一个 交换机上面的,也就是说它们的IP地址是由交换机或者路由器进行分配的。而且每一个IP也是有所不同的,并且这些连接在…

外网与内网

一、外网和内网  其实外网和内网的概念很模糊。  简单的说,自己的单位或者家庭、小区内部有局域网;单位、家庭之外有覆盖范围极大的网络,比如internet,这个大网络延伸到了我们的单位、家庭(通过光纤、网线、电话线等…

内网和外网的区别?

网络按地域范围分类:局域网、城域网、广域网 网络按使用者分类为:公共网 和 专用网 内网 内网又称局域网(Local Area Network,LAN),是指在某一区域内由多台计算机以及网络设备构成的网络。 外网 外网又称广…

内网和外网的区别

参考文章:https://blog.csdn.net/Alexwym/article/details/81772446 https://blog.csdn.net/weixin_42724467/article/details/89147214 一、现象 外网,即广域网、WAN、公网;内网,即局域网、LAN、私网。 要搞清楚内网和外网的区…