项目场景:

使用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()方法读不到数据的小坑相关推荐

  1. SQL:插入数据的小坑

    在SQL Server中,不管是存储过程还是自定义函数中,经常需要进行插入数据的操作.在插入数据的时候,很多人选择如下方式 INSERT INTO DestinationTable SELECT Co ...

  2. 对于 Scanner类 中 next 和 nextLine 方法的区别

    首先,我们要先明白为什么要采用next与nextLine方法从键盘输入数值呢?其次在分别辨析二者区别. 我们经常接收用户输入的值都是有给定具体的类型的,但不妨有那么一些人就是反着做,导致的结果如下图: ...

  3. (JAVA学习笔记) Scanner类中next方法和nextline方法的区别

    next(): 1.一定要读取到有效字符后才可以结束输入. 2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符. *4. ...

  4. java——Scanner中nextLine()方法和next()方法的区别

    遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用Scanner函数时,在字符串中加入空格,结果空格后面的东西没有输出来(/尴尬),不多说直接上代码: import java.util.Sc ...

  5. Scanner中nextLine()方法和next()方法的区别

    我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效 ...

  6. Scanner类中的next()和nextLine()方法

    当我们从键盘输入时,通常会使用Scanner文本扫描器,当输入需要判断空格,tab键等无效字符时,next和nextLine()有不同的效果. next()一定要读取到有效字符后才可以结束输入,对输入 ...

  7. Scanner类nextLine()和next()的区别和使用方法

    1.问题描述 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单.在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextL ...

  8. nextline函数_Java 中nextLine()方法没有执行直接跳过解决办法

    使用Java的Scanner类nextLne()方法从显示器输入数据时,nextInt()后面的nextLine()直接跳过没有执行: 截图:第三个输入直接跳过 通过上网的查找我终于发现了问题出在哪里 ...

  9. Scanner对象及其获取数据出现小问题和解决方案

    Scanner类简介: Java 5添加了java.util.Scanner类,我们可以通过Scanner类来获取用户输入.它是以前的StringTokenizer和Matcher类之间的某种结合.由 ...

最新文章

  1. PetShop 4.0 数据访问层之我所见
  2. [Head First设计模式]生活中学设计模式——迭代器模式
  3. php 操作数组 (合并,拆分,追加,查找,删除等)
  4. python简单代码画曲线图教程-用Python画论文折线图、曲线图?几个代码模板轻松搞定!...
  5. 企业应用架构模式学习笔记
  6. CodeChef Cards, bags and coins [DP 泛型背包]
  7. 【需求】手机无线投屏到电视需求整理,Miracast无线投屏功能应用及需求
  8. Python学习 Day 046 - DOM 操作 二
  9. delphi if多个条件_Python从入门到精通——一文读懂if语句用法
  10. 图形学 射线相交算法_计算机图形学中的阴极射线管(CRT)
  11. 《产品设计与开发(原书第5版)》——3.2 机会识别的评比结构
  12. c语言链表做歌手比赛系统,大型实验报告(歌手比赛系统)
  13. 【动态规划区间dp】蓝桥2019:最优包含
  14. 软件项目管理案例教程(第3版)复习内容
  15. 【python】通讯录制作
  16. 盘点2021年10个顶级数据分析软件,及优缺点对比
  17. OpenCV图像处理之直方图
  18. lisp如何将度分秒转换为弧度_1/16怎么转换成角度(度分秒)??
  19. 红蜻蜓截图工具在win7下保存截图为png失败
  20. 利用Python实现自动投票以及自动爬虫IP代理

热门文章

  1. python力导向图_几种吊炸天的图,还可以动,了解下??(力导向图,桑基图、树图、弦图)...
  2. 基于Unity的C#中各类函数使用方法及示例
  3. Office Visio 2007(64位)密钥
  4. office2016和Visio2016同时安装
  5. Android 全屏和保持屏幕长亮
  6. 2022年高压电工操作证考试题库及模拟考试
  7. win10系统托盘图标不见了_win10 右下角任务托盘图标全部不见了,怎么办?
  8. 无线网卡的Master、monitor、promi…
  9. 无法访问org.springframework.boot.SpringApplication类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。
  10. 餐饮门店数字化转型|餐厅管理系统小程序