在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 ),并且无法读取数据相关教程