常用的next()方法系列:
nextInt():输入整数
nextLine():输入字符串
nextDouble():输入双精度数
next():输入字符串(以空格作为分隔符)。
next()和nextLine()比较:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。所以next方法不能得到带空格的字符。nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
1.nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符。所以next()不会得到带空格的字符串,而nextLine()可以得到带空格的字符串。
2.
如果在next()后紧跟nextLine(),nextLine()会吃掉next()的回车符,造成第二个字符串接受了回车符,所以通常在next()等方法后加上一个scanner.nextLine(),来吞掉回车符,如next(),nextInt(),nextFloat(),nextDouble等,或者直接使用next。
在每一个next()、nextDouble()、nextFloat()、nextInt()等语句之后加一个nextLine()语句,将过滤掉被next()去掉的Enter结束符。就可以了。