要使用Scanner必须要先引入java.util.Scanner包,如下:
在引入包之后要使用输入还需先创建Scanner对象,如下:
接下来就可以开始使用Scanner了
1.各种next的用法和区别
1.nextInt是用来读取整数的
2.nextDouble是用来读取双精度的小数的
3.nextFloat是用来读取单精度小数的
以上三种当读取到非本身可读取的类型会报输入类型不匹配异常,如nextInt读取了一个小数
4.next和nextLine都是对字符串进行读取的,但两者是有区别的,它们读取的开始与结束存在差异
2.各种next的读取方法
1.读取开始
next, nextInt, nextDouble, nextFloat 都是一直要读取到可读取的字符才开始读取,在可读取的字符前的空格, tab键 和 enter键都不会进行读取, 而是忽略
nextLine是从最开始进行读取的,遇见enter键就结束读取,无论第一个是不是enter
2.读取结束
next, nextInt, nextDouble, nextFloat都是将enter键, tab键 和空格键 作为结束符的,当读取到结束符后就会停止读取, 当它们停止读取后不会将结束符一起读取, 而是和结束符后面的字符一起存入缓冲区
nextLine是将enter键作为结束符的,当读取到结束符后依旧会将enter一起读取,但是它将enter读取后并不会将enter一起保留下来,它会舍去enter保留结束符前面的字符串
3.异常读取
由于它们之间的不同读取方式,经常会出现enter被下一个nextLine读取,如:
nextLine会读取next保留在缓冲区的首位enter, 可以在next下方加上一个nextLine读取enter键来解决这个问题,nextInt, nextDouble,nextFloat都是一样的
3.hasNextxxx
hasNextInt, hasNext, hasNextLine, hasNextFloat, hasNextDouble都是用来判断输入的是都为其类型,若是返回true,否则返回false