概述
JDK5以后用于获取用户的键盘输入
构造原理方法:
Scanner(InputStream source)
System类下有一个静态的字段:
public static final InputStream in; //标准的输入流,对应着键盘录入
nextXxx() 方法 :获取下一个输入项。Xxx表示输入数据的类型
常用的几种:
public int nextInt():获取一个int类型的值
public String nextLine():获取一个String类型的值
public String next():获取一个String类型的值(录入的字符串中间,有空格,空格后面的内容不录入)
import java.io.InputStream;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
InputStream in = System.in;
Scanner scanner = new Scanner(in);
System.out.println("请输入一个整数");
int i = scanner.nextInt();
System.out.println(i);
scanner = new Scanner(in);
System.out.println("请输入一段字符串");
String s = scanner.nextLine();
System.out.println(s);
System.out.println("请输入:");
String next = scanner.next();
System.out.println(next);
}
}
运行结果:
使用nextLine()方法时,如果先前录入过整数,再录入字符串时,会导致字符串录不进去,所以在录入字符串时,重新在创建一个Scanner对象。
hasNextXxx() :判断下一个是否是某种类型的元素,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
while (true) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数");
if (scanner.hasNextInt()) {
int i = scanner.nextInt();
System.out.println(i);
break;
} else {
System.out.println("输入类型不正确,请重新输入");
}
}
}
}
运行结果: