VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • Java Scanner nextLine方法跳过

问题描述

Scanner使用了nextInt方法的时候,如果接下来要使用nextLine,会获取不到内容

原因

因为Scanner读取用户输入数据,是先判断缓冲区是否含有数据,没有则接收用户输入的数据,把用户输入的数据放在缓冲区中读取。

Scanner先获取用户的内容到缓冲区中,调用nextInt方法读取数值,但是缓冲区的内容里其实还含有个\n换行符,nextInt方法将数值取出之后,\n仍然存在于缓冲区.

之后我们再调用nextLine方法,由于缓冲区中还存在有内容,所以Scanner这个时候直接去到了缓冲区读取,读取到\n,直接换行.

于是,Scanner的nextLine方法就跳过,没有获取到用户输入内容.

解决方法

在使用完nextInt之后调用nextLine,将缓冲区中的\n清除掉

	int i = scanner.nextInt();
	scanner.nextLine();

提问之前,请先看提问须知 点击右侧图标发起提问

来源:https://www.cnblogs.com/stars-one/p/10163694.html


相关教程