Scanner的各种方法
Scanner(System.in)
Scanner sc = new Scanner(System.in);
这是我们固定的写法,那System.in这个参数有什么用呢?我们点进去看一下
原来in是一个字节输入流对象,当我们用完i/0流时,需要将它关掉,节约资源。
当调用它的close方法时会关掉Scanner,就不能再继续输入数据了
基础方法:
1. next(): 用于查找并返回输入的数据,返回值类型是String;
2. nextInt(): 用于查找并返回输入的int型数据,返回值类型是int;
3. nextDouble(),nextFloat(),nextLong()等,都与nextInt()方法类似;
4. nextLine();用于读取一行的数据,并将它返回;
5. hasNextLine():用于判断下一行是否有输入,返回值类型为boolean;
6. hasNextInt():用于判断下一个输入的值是否为Int型数据,返回值类型为boolean;
区别:
next(),nextInt(),nextDouble…这类方法只能读取数值,不能识别空格,碰到空格直接返回了。
nextLine()是一次读取一行数据,可以包含空格。
并且nextInt()后面没有读取的数据,依然留在这一行中,我们可以用nextLine来读取
经历:
今天我想用hasNextInt来判断我输入的一串数据是否整数,
当输入:{12 as} 会返回这是一个整数,
原因:当它判断到空格时,会停止判断,后面的字符串就不会进行判断了。显然用这种方法来判断字符串是否是数字是不行的。