Java中nextInt()后接nextLine()读取不到数据
2017-07-13 18:09
323 查看
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中Scanner类在nextInt()后无法输入nextLine()的问题
- Java中nextInt()后紧跟nextLine()方法造成的一些问题
- 利用java如何读取Excel中的数据!
- ajax中用responseXML读取不到中文数据的问题
- java序列化读取与文本文件读取数据效率对比
- 数据库连接方式读取不到Excel数据值的解决方法
- 用Java读取word中的数据
- JAVA从控制台中读取数据完全攻略
- 用Java读取pdf中的数据
- 用Java读取word中的数据
- Java版SLG游戏开发入门[2]--数据的读取及保存
- 从ApplicationResources.properties中读取数据对文件进行操作.java
- java序列化读取与文本文件读取数据效率对比
- DELPHI与Java Web读取TABLE数据最简捷的方案:TkbmMemTable+java数据Format器
- 用Java读取pdf中的数据
- 用Java POI操作Excel,读取数据导入DB2数据库
- java 读取图片的 Exif 数据
- 使用JAVA读取EXCEL文件里面的数据
- java序列化读取与文本文件读取数据效率对比
- java.sql.SQLException: 无法从套接字读取更多的数据