Java中nextInt()后接nextLine()读取不到数据

Java中nextInt()后接nextLine()读取不到数据

问题:

在使用Scanner对象的nextLine()函数读取输入的一行数据时,有时会出现读取不到数据的情况。如下图:

这是因为在调用nextLine()函数前调用了Scanner的另一个函数nextInt()(或是nextDouble())。出现这种情况的原因是两个函数的处理机制不同,nextInt()函数在缓冲区中遇到“空格”、“回车符”等空白字符时会将空白字符前的数据读取走,但空白字符不会被处理掉,而nextLine()函数是在缓冲区中读取一行数据,这行数据以“回车符”为结束标志,nextLine()会把包括回车符在内的数据提走。所以nextInt()后的nextLine()函数并非读取不到数据,因为nextInt()将“回车符”留在了缓冲区,nextLine()读取时遇到的第一个字符便是“回车符”,所以直接结束了。

解决方法:

1.在要使用nextLine()前先调用一次nextLine(),这样留在缓冲区的“回车符”就会被处理掉,这时第二个nextLine()函数可以正常读取到数据。

2.避免在nextLine()之前调用nextInt()等函数,可以统一使用nextLine()来读取数据,之后再进行类型转换。

Java中nextInt()后接nextLine()读取不到数据相关教程

java nextint后有空格,Java中nextInt()后接nextLine()读取不到数据相关推荐

  1. 【二叉树Java】二叉树遍历前序中序后序遍历的非递归写法

    本文主要介绍二叉树前序中序后序遍历的非递归写法 在探讨如何写出二叉树的前序中序后序遍历代码之前,我们先来明确一个问题,前序中序后序遍历根据什么区分? 二叉树的前序中序后序遍历,是相较根节点说的.最先遍 ...

  2. java jax-rs_在Java EE 7和WildFly中使用Bean验证来验证JAX-RS资源数据

    java jax-rs 我过去已经两次接触过这个主题. 首先,在我的文章< 在Java EE 6中将Bean验证与JAX-RS集成>中 ,描述了甚至在Java EE平台规范中尚未定义之前, ...

  3. 在Java EE 7和WildFly中使用Bean验证来验证JAX-RS资源数据

    我过去已经两次接触过这个主题. 首先,在我的文章< 在Java EE 6中将Bean验证与JAX-RS集成>中 ,介绍了甚至在Java EE平台规范中未定义之前,如何在JBoss AS 7 ...

  4. java去掉前后空格_js中去除字符串前后空格

    第一种:循环检查替换 [javascript] //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 functi ...

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

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

  6. anaconda在ubuntu中安装后没有_你的大数据平台中病毒了!!!记一次HDP安装后中dr.who病毒并修复的过程...

    有些事还是经历过了才知道"小心驶得万年船"的道理啊.最近笔者帮一个客户安装HDP2.6.5版本的大数据平台,最重要的是,这次安装的背景是生产环境的云平台迁移,不是普通的开发阶段或者 ...

  7. java取出字符串中的后四位_[原]Java面试题-将字符串中数字提取出来排序后输出...

    [Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...

  8. java(5)---Java基础知识大全

    Java基础知识大全 一.基础知识:  1.JVM.JRE和JDK的区别:  JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性.  java语言是跨平 ...

  9. Java基础17:Java IO流总结

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a724888/article/details/80201802 这位大侠,这是我的公众号:程序员江湖 ...

最新文章

  1. SAP PM 初级系列15 - IW33事务代码界面里查看维修工单对应的维修通知单的几个方法
  2. windows系统numpy的下载与安装教程
  3. 4月22日MySQL学习
  4. mysql 时间间隔分组_sql的两种以时间间隔分组的方法
  5. Spring Data ElasticSearch删除索引遇到的java.lang.IllegalStateException: Failed to load ApplicationContext异常
  6. 前端学习(2590):前端权限的菜单控制
  7. SQL Server 2005参考:PIVOT
  8. CSS一个元素同时使用多个类选择器(class selector)
  9. python中赋值运算符有哪些_Python代码中有哪些赋值运算符呢?
  10. Visual Studio Code C++配置文件
  11. 精通webpack的5大关键点
  12. iPhone 14或让果粉再度“梦碎”:屏幕指纹和120Hz高刷屏都没了
  13. HDU 6356.Glad You Came-线段树(区间更新+剪枝) (2018 Multi-University Training Contest 5 1007)...
  14. 牛客网练习赛26B(简单的dp)
  15. 【SQL】实验三 视图管理和使用
  16. 某车企笔试题解答(2)
  17. 21天学通Java学习笔记-Day03
  18. Elasticsearch 映射参数 fields
  19. bootstrap4 input-spinner数字增减框的使用
  20. Java怎么顺序 或 逆序排序数组

热门文章

  1. jupyter notebook打不开浏览器 或出现端口被占用该如何解决
  2. c语言null和nullptr,nullptr和NULL
  3. Python:操作dict时避免出现KeyError的几种方法
  4. 微信小程序——获取微信昵称、头像、地区及性别弹框(官方自带)
  5. 网络编程 socket与黏包
  6. 私人工具集7——webapi中的Token时效性验证
  7. 浏览器的默认主页变成桔梗导航
  8. 网卡PHY 移植注意事项
  9. windows 7重装系统(简单实用)
  10. html绝对路径的写法,绝对路径和相对路径有什么区别?