Scanner使用了nextInt方法的时候,若是接下来要使用nextLine,会获取不到内容code
由于Scanner读取用户输入数据,是先判断缓冲区是否含有数据,没有则接收用户输入的数据,把用户输入的数据放在缓冲区中读取。方法
Scanner先获取用户的内容到缓冲区中,调用nextInt方法读取数值,可是缓冲区的内容里其实还含有个\n
换行符,nextInt方法将数值取出以后,\n
仍然存在于缓冲区.next
以后咱们再调用nextLine方法,因为缓冲区中还存在有内容,因此Scanner这个时候直接去到了缓冲区读取,读取到\n
,直接换行.数据
因而,Scanner的nextLine方法就跳过,没有获取到用户输入内容.co
在使用完nextInt以后调用nextLine,将缓冲区中的\n
清除掉
int i = scanner.nextInt(); scanner.nextLine();