//next()和nextLine()的区别详解 /*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。 ?*/
/*nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。 ?*/ ?
1.nextLine:
公共字符串nextLine(),将此扫描仪移过当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。位置设置为下一行的开头。由于此方法继续在输入中搜索寻找行分隔符,因此如果不存在行分隔符,它可能会缓冲所有搜索该行的输入,以便跳过该行。 (也就是说nextLine是在告诉机器这一行还有数据快去扫描,并不是在判断这一行是否还有数据,如果用nextLine去判断是否还有数据等一下机器不管后面是否还有数据直接扫描,这个时候如果这一行已经没有了数据了会抛出NoSuchElementException - if no line was found即抛出异常或者非法输出)
2.hasNextLine()
如果此扫描仪的输入中有另一行,则返回true。此方法可能在等待输入时阻塞。扫描器不会超过任何输入。 返回: 如果且仅当此扫描仪有另一行输入时为真
|