nextInt():读取一个整数,以空格键、Tab键或Enter键等结束符结束。
PS:
- 不会读走结束符!
- 会自动跳过前面的结束符
- 如果输入多个数字中间用空格隔开,则只会读取第一个数字,下个nextInt()将会直接读取数字跳过输入
例如:
输入“123”实际输入为“123\n”,nextInt只会读取123,“\n”便留在缓存区等待
next():读取一个字符串,以空格键、Tab键或Enter键等结束符结束。
PS:
- 不会读走结束符!
- 会自动跳过前面的结束符直到读取一个有效的字符串之后,next()方法才会将其后输入的空格键、Tab键或Enter键等视为结束符。
nextLine():读取一个字符串,以Enter键结束符结束。
PS:
- nextLine()的结束符只是Enter键!
- nextLine()的结束符也会被nextLine()读取,但是它并不会作为方法返回值的一部分,只是单纯吸收!
- 如果nextLine()之前用了nextInt() / nextDouble() / next() 等方法,这些方法遗留在缓冲区的空格字符就会被nextLine()读走,此时就会造成一个”数据无法读取”的现象,但其实不是的,它是有读取数据的,只不过它读取的是上一个nextInt() / nextDouble() / next() 等方法遗留下来的结束符!