Java中Scanner对象中hasNext()与next()方法浅析

Java中Scanner对象中hasNext()与next()方法浅析相信很多像我一样在刚刚接触Java的时候都有遇到这样的问题:我们可能希望的是:先输出“请输入:”然后我们就可以在控制台输入一个字符串或数字。但是,事实却是:控制台要我们先输入,输入后才显示“请输入:”。这是怎么回事?原因:首先,sc.hasNext()和sc.next()都可以用来输入我们,可以发现,hasNext()返回的是boolean类型而next…

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

相信很多像我一样在刚刚接触Java的时候都有遇到这样的问题:

Java中Scanner对象中hasNext()与next()方法浅析

我们可能希望的是:先输出“请输入:”然后我们就可以在控制台输入一个字符串或数字。

但是,事实却是:控制台要我们先输入,输入后才显示“请输入:”。

Java中Scanner对象中hasNext()与next()方法浅析

这是怎么回事?

原因:

首先,sc.hasNext()和sc.next()都可以用来输入

Java中Scanner对象中hasNext()与next()方法浅析

Java中Scanner对象中hasNext()与next()方法浅析

Java中Scanner对象中hasNext()与next()方法浅析Java中Scanner对象中hasNext()与next()方法浅析

我们,可以发现,hasNext()返回的是boolean类型而next()返回的是你输入的那个值,

sc.hasNext()可以理解为把我们输入的值存到了sc当中而sc.next()可以理解为从sc中取值,取值后将标识符后移(可以理解为:取完值后这个值就不在了),如果sc中没有值了,它也会要求输入一个值(前面说了它们两都可以输入)。

然后我们再来分析一下开始的那段程序:

Java中Scanner对象中hasNext()与next()方法浅析

首先,进入while循环,sc.hasNext()就要求我们给他输入一个值,所以就不会输出“请输入:”,当我们输完后,String str = sc.next()中,会从sc中取出我们输入的那个值返回到str中,如果没有值,它就会被阻塞要求我们给它一个值。

以上内容纯属个人理解(如果理解不同,请查阅官方文档)

关注微信公众号,某课资源、技术精讲、妹纸免费看

Java中Scanner对象中hasNext()与next()方法浅析

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AppFabric_性能监视器汉化版

    AppFabric_性能监视器汉化版最近项目要上线了,appfabric这块是我比较担心的,因为以前项目的.netframework版本是3.5,而用了appfabric后必须升级为.net4.0.另appfabric究竟如何,还是有些担心  我个人最近要做的是多模拟安装了几次appfabric,准备好了需要用到的命令.  这两天把性能监视这块看看了,汇集了些资料,共享下了: 地址为:http://msdn.mic

    2022年10月17日
    3
  • android插件化-apkplugdemo源代码阅读指南-10

    android插件化-apkplugdemo源代码阅读指南-10

    2021年12月4日
    41
  • c语言xml解析器libxm2

    c语言xml解析器libxm2写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言;2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换;3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如

    2022年7月12日
    55
  • python激活码在线【2021最新】

    (python激活码在线)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
    59
  • JetBrains全家桶永久激活码[最新免费获取]

    (JetBrains全家桶永久激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~CIOUM2KBSU-eyJsaWNlb…

    2022年3月26日
    1.5K
  • WebSocket介绍和Socket的区别

    WebSocket介绍和Socket的区别  WebSocket介绍与原理WebSocketprotocol是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。——百度百科目的:即时通讯,替代轮询网站上的即时通讯是很常见的,比如网页的QQ,聊天系统等。按照以往的技术能力通常是采用轮询、Comet技术解决。HTTP协议是非持久化的,单向的网…

    2022年7月11日
    16

发表回复

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

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