news 2026/5/11 23:56:23

Scanner类nextInt与nextLine区别解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Scanner类nextInt与nextLine区别解析

以下是对您提供的博文内容进行深度润色与结构重构后的专业级技术文章。全文已彻底去除AI痕迹,采用真实工程师口吻写作,逻辑层层递进、语言自然流畅,融合教学性、工程实践性与底层机制洞察,同时严格遵循您提出的全部格式与风格要求(无模板化标题、无总结段、无展望句、不使用“首先/其次”等机械连接词、关键概念加粗、代码注释详尽、表格精炼有力):


为什么nextInt()后直接调用nextLine()总是读到空字符串?——从字节缓冲区看 Java 输入流的真实模样

你有没有遇到过这样的场景:
用户刚输入一个年龄25,按下回车,程序却“跳过”了接下来的姓名输入,直接打印出' '——一个空字符串?

这不是 bug,也不是 JVM 抽风。这是System.in缓冲区里静静躺着的一个0A字节,在向你发出无声的抗议。

我们习惯把Scanner当作一个“智能输入助手”,但它其实更像一台手动挡的老式打字机:你按下一个键,它不会自动换行;你敲完数字,它也不会帮你擦掉回车键留下的印痕。真正决定“下一行从哪开始”的,不是方法名,而是那个被所有人忽略的、藏在InputStream底层的字节缓冲区状态


nextInt()的真相:它根本不管“回车”

很多人以为nextInt()是“读一行里的数字”,其实完全相反 —— 它压根不认“行”。

它的行为非常朴素:

  1. 跳过所有空白字符(空格、制表符、换行符\n、回车符\r);
  2. 尽可能多地读取连续的数字字符(支持正负号);
  3. 停在第一个非数字字符前,但不消费它

重点来了:当用户输入25↵时,nextInt()只拿走了25对应的两个字节32 35,而把换行符0A留在了缓冲区里,原封不动。

你可以把它想象成一个只认数字的守门人,门外堆着一串字符:['2', '5', '\n', 'A', 'l', 'i', 'c', 'e', '\n']。他打开门,抓走25,然后“啪”一声关上门,对门口的\n视而不见。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 0:21:52

效率倍增:Windows系统增强工具PowerToys中文本地化全攻略

效率倍增:Windows系统增强工具PowerToys中文本地化全攻略 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为英文界面的系统工具感到困扰吗…

作者头像 李华
网站建设 2026/5/11 20:04:57

foo_openlyrics:foobar2000音乐播放器的终极歌词解决方案

foo_openlyrics:foobar2000音乐播放器的终极歌词解决方案 【免费下载链接】foo_openlyrics An open-source lyric display panel for foobar2000 项目地址: https://gitcode.com/gh_mirrors/fo/foo_openlyrics 🎯 核心优势:让歌词成为…

作者头像 李华
网站建设 2026/5/8 20:59:25

Platinum-MD:开源NetMD管理工具的无损音频传输解决方案

Platinum-MD:开源NetMD管理工具的无损音频传输解决方案 【免费下载链接】platinum-md Minidisc NetMD Conversion and Upload 项目地址: https://gitcode.com/gh_mirrors/pl/platinum-md 🌟 核心价值解析 Platinum-MD作为一款免费开源的NetMD管理…

作者头像 李华
网站建设 2026/5/4 15:38:28

通义千问3-14B Docker部署:容器化配置详细步骤

通义千问3-14B Docker部署:容器化配置详细步骤 1. 为什么选Qwen3-14B?单卡跑出30B级效果的务实之选 很多人一看到“14B”就下意识觉得性能有限,但Qwen3-14B彻底打破了这个刻板印象。它不是靠参数堆砌,而是用更精炼的Dense架构、…

作者头像 李华
网站建设 2026/5/11 2:00:38

实测TurboDiffusion的I2V能力:静态图变动态视频有多强

实测TurboDiffusion的I2V能力:静态图变动态视频有多强 1. 开篇:一张图,如何“活”起来? 你有没有试过把手机里一张静止的照片,变成一段会呼吸、有节奏、带情绪的短视频?不是简单加个滤镜或转场动画&#…

作者头像 李华
网站建设 2026/5/3 6:00:24

5步轻松配置通达信缠论分析工具:让技术分析像搭积木一样简单

5步轻松配置通达信缠论分析工具:让技术分析像搭积木一样简单 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 🎯 核心价值:为什么需要这款工具? 缠论分析就…

作者头像 李华