喵喵喵~~~~
可爱的小北同学又回来啦,今天要给大家分享的是Java中的Scanner
首先上思维导图:
【1】什么是Scanner类?
答:Scanner是java.util包中的一个类
【2】Scanner是用来干什么的?
答:常用于控制台的输入,当需要控制台输入时会调用这个类
【3】Scanner如何使用呢?
答:先来说一下Scanner 的构造方法原理:
Scanner(InputStream source)
public static final InputStream in;标准的输入流,对应着键盘录入
我们一般的调用方法是: 需要构造一个Scanner对象与标准输入流System.in关联
public class Demo{
public static void main(String[] args){
//从键盘接收一个字符串
Scanner str = new Scanner(Sysytem.in);
String string1=str.next();
}
}
构造了这个Scanner对象之后,控制台会一直等待从键盘的数据输入,直到回车键结束。
【4】Scanner对象的方法摘要
A:close():关闭扫描器
B:hasNext(String pattern):如果下一个完整标记与指定模式相匹配,则返回true
C:hasNextBoolean():如果此扫描器输入信息中的下一个标记可以解释为布尔类型则返回true
D:hasNextByte():如果此扫描器输入信息中的下一个标记可以解释为字节类型则返回true
E:hasDouble():如果此扫描器输入信息的下一个标记为double类型,则发挥true
F:next():返回来自此扫描器的下一个完整标记
G:toString():返回此Scanner的字符串表示形式
H:nextInt():将输入信息的下一个标记扫描为int类型
I:nextLong():将输入信息的下一个标记记为Long类型
【5】举个例子:
package cn.itcast;
import java.util.Scanner;
public class csdntest {
public static void main(String[] args) {
Scanner str = new Scanner(System.in);
int str2 = str.nextInt();
String str1 = str.nextLine();
System.out.println(str2);
System.out.println(str1);
}
}
结果如下:
我们本来是要接收一个int型数据之后再接收一个数据的,但是当接收到int数据之后,一个回车键程序结束了!!!!接结束了!!!!
妈耶!这是什么情况?????
好了,也没有那么夸张,其实就是后面将回车键当做输入字符直接接收进去了,输出并返回了。
这样当然是不便于我们使用的,那有没有更好的方法来避免呢?
当然是有的啦:
package cn.itcast;
import java.util.Scanner;
public class csdntest {
public static void main(String[] args) {
Scanner str = new Scanner(System.in);
int str2 = str.nextInt();
String str1 = str.next();
System.out.println(str2);
System.out.println(str1);
}
}
结果呢?
用next()方法就不会出现这种情况,所以推荐使用