欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

浅析java中next与nextLine用法对比

时间:2021-06-07 08:53:43|栏目:JAVA代码|点击:

java中next与nextLine用法区别:

next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。

简单地说,next()查找并返回来自此扫描器的下一个完整标记。

完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。

而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

s1=sc.next(); 
s2=sc.nextLine();

运行结果是:

请输入第一个字符串:home
请输入第二个字符串:输入的字符串是:home

可以看到,nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值。

经过验证,我发现其他的next的方法,如double nextDouble() , float nextFloat() , int nextInt() 等与nextLine()连用时都存在这个问题,解决的办法是:在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。

在next()方法与nextLine()混用的时候,在每个next()方法后面需要加上sc.nextLine()

<code>Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 加上下面这句
sc.nextLine();
String[] name = new String[num];
for(int i=0;i<num;i++){ :="" for="" i="" int="" pre="" result="getBeautyDegree(name);">   
</num;i++){></code>

本篇文章内容希望可以对您有所帮助

上一篇:java 利用反射获取内部类静态成员变量的值操作

栏    目:JAVA代码

下一篇:maven解决包冲突方法详解

本文标题:浅析java中next与nextLine用法对比

本文地址:http://www.codeinn.net/misctech/136921.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有