Java中next和nextLine的区别,多种方式举例解决吸收问题

next()和nextLine()的区别详解
/*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。如图所示:
*/
在这里插入图片描述
/*nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
如图所示:
在这里插入图片描述
next在识别有效字符之后遇到空格就结束了,当空格之后还有其他的话会被nextLine接收。nextLine会自动接收next的Enter作为结束符,所以并未输入,但有值。
String name1 = sc.nextLine(); //
为了输入,解决办法是在next和nextLine中间再加入一个nextLine语句,将之前的Enter吸收了。
如图
在这里插入图片描述

发布了46 篇原创文章 · 获赞 12 · 访问量 1591

猜你喜欢

转载自blog.csdn.net/weixin_43605701/article/details/105478765