Java中Scanner类中的方法next()、nextInt()及nextLine()的区别:
next()
读取结果为String类型
,返回string类型.
nextInt()
取结果为一个int类型
数据,返回int值。
nextLine()
读取结果为String类型
,返回string类型。
next()
不会读取字符前/后的空格/Tab键,只读取字符(忽略空格回车等等),开始读取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;(包括nextInt()、nextDouble()、nextFloat()等)遇到了空格, 就不再录入数据了 。
结束标记:
空格, tab键。nextLine()
读取字符前后的空格/Tab键,直到回车键截止。可以将数据完整的接收过来 。读取一行,注意到如果是一行的话,空格不作为分割符,一行一行的取,以回车(换行)结束一次取值。
结束标记:
回车换行符。
注意:nextLine()不能用在nextInt后面。
因为nextLine()方法返回的是Enter键之前的所有字符,在使用了nextInt() 方法之后在其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,其仍在缓冲区内;若紧接着使用nextLine() ,则nextLine() 自动读取Enter等作为其结束符,则无法从键盘输入值,强行输入会报出InputMismatchException异常。