Java中nextInt()后接nextline()吞回车问题
原因:
- nextInt()函数在缓冲区中遇到“空格”、“回车符”等空白字符时会将空白字符前的数据读取走,但空白字符不会被处理掉。
- nextLine()函数是在缓冲区中读取一行数据,这行数据以“回车符”为结束标志,nextLine()会把包括回车符在内的数据取走。
nextInt()后的nextLine()函数,因为nextInt()将“回车符”留在了缓冲区,nextLine()读取时遇到的第一个字符便是“回车符”,所以直接结束读取。
解决:
- 使用
nextInt()后先调用一次nextLine()吞回车 - 使用
nextLine(),再通过Integer.parseInt()转格式

浙公网安备 33010602011771号