Java Scanner类中next()和nextLine()的区别

2023-11-15

next()

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

nextLine()

nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。

代码测试

 String s1,s2;
        Scanner sc = new Scanner(System.in);
 /*1.*/ System.out.println("请输入第一个字符串:");
        s1 = sc.next();
        System.out.println("请输入第二个字符串:");
        s2 = sc.nextLine();
        System.out.println("输出的字符串为:"+s1+"\n"+s2);

 /*2.*/ System.out.println("请输入第一个字符串:");
        s1 = sc.nextLine();
        System.out.println("请输入第二个字符串:");
        s2 = sc.next();
        System.out.println("输出的字符串为:"+s1+"\n"+s2);

运行第一种情况的结果为:

请输入第一个字符串:
as
请输入第二个字符串:
输出的字符串为:as

在这里输入as后按下回车键直接输出了结果,看起来并不能输入第二个字符串。

运行第二种情况的结果为:

请输入第一个字符串:
as
请输入第二个字符串:
as
输出的字符串为:as
as

在这里则可以正常的输入输出。

结论
next()没有读取到回车,而是将回车作为分隔符,并且留给了nextLine(),nextLine()直接读入回车符,结束。

故想要输出和第二种情况一样的结果,需要将第一种情况中nextLine()后再加一个nextLine(),第一个用来读next()留下的回车分隔符,第二个用来读取要输入的字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Scanner类中next()和nextLine()的区别 的相关文章

随机推荐

  • openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句

    文章目录 openGauss学习笔记 36 openGauss 高级数据管理 TRUNCATE TABLE语句 36 1 语法格式 36 2 参数说明 36 3 示例 openGauss学习笔记 36 openGauss 高级数据管理 TR
  • Docker部署Emqx并配置ssl支持微信小程序

    1 端口介绍 1883 MQTT 协议端口 8084 MQTT SSL 端口 8083 MQTT WebSocket 端口 8080 HTTP API 端口 18083 Dashboard 管理控制台端口 2 拉取镜像 docker pul
  • 算法与数据结构—LeetCode刷题笔记

    算法刷题笔记 一 动态规划 53 最大子序和 300 最长上升子序列 70 爬楼梯 242 有效的字母异位词 463 岛屿的周长 文章与视频资源多平台更新 微信公众号 知乎 B站 头条 AI研习图书馆 一 动态规划 53 最大子序和 典型的
  • js执行时序 宏任务和微任务

    宏任务一般是 包括整体代码script setTimeout setInterval I O UI render 微任务主要是 Promise Object observe MutationObserver process nextTick
  • 【MySQL高性能】MyCat 2.分片策略以及原理分析

    简介 数据库分片可以把他理解成分库 将一张表拆分到多个数据库中 通常是在表数据大的情况进行拆分 根据InnerDB索引原理 主键索引类型bigint计算得出一张表达到2千万就需要进行拆分了 当然也需要提前做好拆分 数据量大查询效率会慢 阿里
  • android kernel devices睡眠唤醒调试

    主要是在kernel添加关键log 获取有用信息 可以调试suspend resume earlysuspend lateresume等方面的问题 如哪一过程时间过长 跟踪log才可以很好定位问题 解决问题 1 early suspend
  • PermissionError: [WinError 5] 拒绝访问

    使用Pycharm运行时 报错 PermissionError WinError 5 拒绝访问 但是使用终端 Terminal 运行就没有问题 尝试方案 三步解决python PermissionError WinError 5 拒绝访问的
  • vue 报错:Invalid prop: type check failed for prop “xxx“. Expected String with value “1“,Number...

    期望的是String类型 但是传的值是Number 类型 如果你传的是number类型的你需要先转化为字符串就可以了 改成
  • python 爬虫刷浏览量(单线程)---仅供学习目的,切莫有其他想法

    重要的事情说三遍 仅供学习使用 若有其他想法 请出门右转 仅供学习使用 若有其他想法 请出门右转 仅供学习使用 若有其他想法 请出门右转 准备 简单的网站浏览量无非就是访问次数 那么一直按F5就可以 做得比较好的网站会根据 ip 计算浏览量
  • (无需编译)使用官方prebuilt文件在win10下配置caffe for python

    网上给出的caffe安装教程基本上需要自己编译 我在编译的过程中遇到很多问题 弄了很久也没有配置好 然而官方给出了prebuilt的版本 网址 BVLC caffe at windows 之前看到过prebuilt版本但一直不知道怎么使用
  • Linux系统调用--fcntl函数详解

    Linux系统调用 fcntl函数详解 2007 11 06 15 09 分类 ARM Linux应用程序 今天在看 Linux设备驱动程序 第3版 碰到了fcntl系统调用 以前没接触过 在网上查到了这份资料 转载自 企鹅乐园 雅虎群组
  • arcgis10之获取面要素中心点坐标

    第一步 获取中心的文件 第二步 新建两个存储中心点做坐标的字段 第三步 计算要要素中心的xy坐标 同理 计算中心点Y坐标即可
  • 定义表单规则(判断两次密码输入是否一致)

    主要代码 required true validator validateRepassword trigger change export default name form data var validateRepassword rule
  • 微信小程序入门-随机人脸生成

    微信小程序入门 随机人脸生成 开发背景 工具准备 微信小程序开发过程 开发背景 this person does not exist 这个网站起源于英伟达公司研究人员们打造的AI机器人 其能够生成随机且极为逼真的人脸图像 而实际上这些人脸并
  • 转:Cookie详解

    没怎么坐过客户端相关的工作 所以写爬虫的时候 很多概念都很模糊 学习起来很困难 现在想攻坚一下 所以找了一下cookies相关的内容 HTTP cookies 通常又称作 cookies 早期Web开发面临的最大问题之一是如何管理状态 服务
  • 关于“Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案

    问题产生 最近学了Maven 并尝试将以前的项目 springmvc myabtis 重构成Maven项目 Maven项目推荐各种资源文件都放在src java resources目录下 所以我自然把spring的配置文件 包括spring
  • blender模型和材质导入UE4的工作流

    UE4设置 打开UE4 设置 gt 插件 搜索script 启用 然后编辑 gt 项目设置 找到python 是否远程执行打勾 Blender设置 然后下载Blender to UE4的插件 作者地址https github com ana
  • ios的input点击时有阴影

    最近做项目时遇到一个问题 就是h5页面 在ios浏览器中打开的时候 上面的input框点击的时候会出现一片阴影 然后一闪而过 对功能没什么阴影 就是不太美观 经过试验发现 当input使用默认边框时 也会有闪 因为有边框的原故 闪的不太明显
  • Springboot前后端数据传递的序列化数据格式:json字符串

    Springboot进行前后端数据传递格式json字符串的简单理解 1 对象的序列化和反序列化都什么时候用 当你想把内存中的对象保存到磁盘上的文件或者数据库中时 当你想用套接字在网络上传送对象时 当你想通过RMI传输对象时就牵扯到对象的序列
  • Java Scanner类中next()和nextLine()的区别

    next next 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空格键 Tab键或Enter键等结束符 next 方法会自动将其去掉 只有在输入有效字符之后 next 方法才将其后输入的空格键 Tab键或Enter键等视为