Java Scanner nextLine方法跳过

问题描述

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();
相关文章
相关标签/搜索