Scanner的nextLine()方法读不到数据的小坑
项目场景:
使用Scanner的nextLine()方法获取数据的时候出现了问题,一般发生在和next(),nextInt()等类似方法混用的时候
问题描述
例如:以下这段代码,本意应该是在控制台输入两行数据,输入一行立刻输出一行。
Scanner in = new Scanner(System.in);
String s1=in.next();
System.out.println(s1);
String s2=in.nextLine();
System.out.println(s2+"==");
实际上输出的结果
可以看到我明明只输入了一行代码却执行完了
原因分析:
输入完按下回车时,next()或者nextInt()会读取有效数据并把光标停在回车之前,这样nextLine()会读到上一行代码遗留的那个回车键然后直接输出,从而产生以上问题
解决方案:
连续读取的时候都采用nextLine()方法,不要和next()或者nextInt()混用,虽然nextLine()方法也会读取有效数据并把光标停在回车之前,但是第二个nextLine()方法会自动识别第一个回车和第二个回车之间的数据,代码可以这样改:
Scanner in = new Scanner(System.in); String s1=in.nextLine(); System.out.println(s1); String s2=in.nextLine(); System.out.println(s2+"==");
Scanner的nextLine()方法读不到数据的小坑相关推荐
- SQL:插入数据的小坑
在SQL Server中,不管是存储过程还是自定义函数中,经常需要进行插入数据的操作.在插入数据的时候,很多人选择如下方式 INSERT INTO DestinationTable SELECT Co ...
- 对于 Scanner类 中 next 和 nextLine 方法的区别
首先,我们要先明白为什么要采用next与nextLine方法从键盘输入数值呢?其次在分别辨析二者区别. 我们经常接收用户输入的值都是有给定具体的类型的,但不妨有那么一些人就是反着做,导致的结果如下图: ...
- (JAVA学习笔记) Scanner类中next方法和nextline方法的区别
next(): 1.一定要读取到有效字符后才可以结束输入. 2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符. *4. ...
- java——Scanner中nextLine()方法和next()方法的区别
遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用Scanner函数时,在字符串中加入空格,结果空格后面的东西没有输出来(/尴尬),不多说直接上代码: import java.util.Sc ...
- Scanner中nextLine()方法和next()方法的区别
我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效 ...
- Scanner类中的next()和nextLine()方法
当我们从键盘输入时,通常会使用Scanner文本扫描器,当输入需要判断空格,tab键等无效字符时,next和nextLine()有不同的效果. next()一定要读取到有效字符后才可以结束输入,对输入 ...
- Scanner类nextLine()和next()的区别和使用方法
1.问题描述 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextL ...
- nextline函数_Java 中nextLine()方法没有执行直接跳过解决办法
使用Java的Scanner类nextLne()方法从显示器输入数据时,nextInt()后面的nextLine()直接跳过没有执行: 截图:第三个输入直接跳过 通过上网的查找我终于发现了问题出在哪里 ...
- Scanner对象及其获取数据出现小问题和解决方案
Scanner类简介: Java 5添加了java.util.Scanner类,我们可以通过Scanner类来获取用户输入.它是以前的StringTokenizer和Matcher类之间的某种结合.由 ...
最新文章
- PetShop 4.0 数据访问层之我所见
- [Head First设计模式]生活中学设计模式——迭代器模式
- php 操作数组 (合并,拆分,追加,查找,删除等)
- python简单代码画曲线图教程-用Python画论文折线图、曲线图?几个代码模板轻松搞定!...
- 企业应用架构模式学习笔记
- CodeChef Cards, bags and coins [DP 泛型背包]
- 【需求】手机无线投屏到电视需求整理,Miracast无线投屏功能应用及需求
- Python学习 Day 046 - DOM 操作 二
- delphi if多个条件_Python从入门到精通——一文读懂if语句用法
- 图形学 射线相交算法_计算机图形学中的阴极射线管(CRT)
- 《产品设计与开发(原书第5版)》——3.2 机会识别的评比结构
- c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)
- 【动态规划区间dp】蓝桥2019:最优包含
- 软件项目管理案例教程(第3版)复习内容
- 【python】通讯录制作
- 盘点2021年10个顶级数据分析软件,及优缺点对比
- OpenCV图像处理之直方图
- lisp如何将度分秒转换为弧度_1/16怎么转换成角度(度分秒)??
- 红蜻蜓截图工具在win7下保存截图为png失败
- 利用Python实现自动投票以及自动爬虫IP代理
热门文章
- python力导向图_几种吊炸天的图,还可以动,了解下??(力导向图,桑基图、树图、弦图)...
- 基于Unity的C#中各类函数使用方法及示例
- Office Visio 2007(64位)密钥
- office2016和Visio2016同时安装
- Android 全屏和保持屏幕长亮
- 2022年高压电工操作证考试题库及模拟考试
- win10系统托盘图标不见了_win10 右下角任务托盘图标全部不见了,怎么办?
- 无线网卡的Master、monitor、promi…
- 无法访问org.springframework.boot.SpringApplication类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。
- 餐饮门店数字化转型|餐厅管理系统小程序