求教java输入流问题

 我来答
维维追剧
2017-05-17 · TA获得超过2642个赞
知道小有建树答主
回答量:419
采纳率:100%
帮助的人:77.3万
展开全部

相信很多Java初学者在用Scnnner的时候会因为nextInt(),next(),nextLine()等出现bug。

我们先来看一段代码:

输入输出结果:

本想输入三次,将第一个整数存在变量m,下一个字符串存在str1,下一行字符串存在str2;

然而从结果来看,似乎跳过了in.nextLine();无法达到预期效果。

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

再来看看下一个I/O例子:

容易看出,str2储存了“ rty”,原因便是in.next()只读取了空格之前的数据,之后的in.nextLine()读取了包括空格在内的之后一整行数据。

在in.next()之后添加一个in.nextLine()把'\n'也读取就可以达到预期输入效果了。

三者同时使用的时候in.next()与in.nextInt()只会读取空格之前的数据,之后的会由in.nextLine()读取,根据需求,有时候可以都用in.nextLine(),之后再进行类型转换。或者搞清楚程序运行步骤,理清这几个输入之间的先后关系,在合适的位置添加一个in.nextLine()也可以解决问题。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式