,,Java之next()、nextLine()区别及问题解决

,,Java之next()、nextLine()区别及问题解决

本文主要介绍Java中next()和nextLine()的区别以及解决问题的方法。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

Scanner scanner=新扫描仪(system . in);

System.out.println('请输入商品编号:');

string id=scanner . next();

System.out.println('请输入商品名称:');

string name=scanner . nextline();

上面的代码在执行时会出现一个问题:输入第一个值商品编号后,在输入第二个值商品名称前直接结束,即只接收第一个值。

这是怎么回事?如下

首先,我们分别说说next()和nextLine()的特点:

Next()不会结束输入,直到读取到一个有效字符(不包括空格、制表符和回车符)并且有回车符和其他结束字符。如果没有输入有效字符,一直按空格键和回车不会结束输入。当取值时,只读取空格、制表符和回车之前的有效字符。比如输入ab cd ef,只取ab,其他不取。所以next()不能用来输入包含空格或制表符的字符。

NextLine()读取回车结束符并结束输入,不管回车前是否有有效字符。选择该值时,将读取回车之前的所有输入数据,包括空格和制表符。所以nextLine()可以用来输入包含空格或制表符的字符。

在上面的问题中,当输入第一个值时,按enter,next()只读取有效字符,不包括enter。所以这个回车是左的,第二个值以回车结束,所以直接读取回车,所以第二个值直接结束,不需要手动输入内容。

解决方法是:在第二个值nextLine()前再加一个nextLine()接收第一个值留下的回车,保证下一个nextLine()接收正确的内容。

Scanner scanner=新扫描仪(system . in);

System.out.println('请输入商品编号:');

string id=scanner . next();

scanner . nextline();//添加一个nextLine()来接收next()留下的回车

System.out.println('请输入商品名称:');

string name=scanner . nextline();

关于Java中next()和nextLine()的区别以及解决问题的方法的文章到此为止。关于Java中next()和nextLine()的更多信息,请搜索我们以前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: