定义:Scanner是一个基于正则表达式的文本扫描器,我们可以利用它从字符/字符串(即Char类型/String类型的字面量)、文件、输入流(键盘、扫描仪等)中解析出基本数据类型值或字符串值。
Scanner类主要提供了两个方法来扫描输入:
①hasNextXxx():该方法用于判断是否还有下一个Xxx类型的输入项。如果有下一个符合类型的输入项,返回true;如果没有下一个符合类型的输入项,返回false。Xxx可以是Byte、Short、Int、Long、Float或Double。如果希望判断是否还有下一个String类型的输入项,直接使用hasNext()即可;如果希望判断是否还有下一行,直接使用hasNextLine()即可。
②nextXxx():该方法用于获取下一个Xxx类型的输入项。如果下一个输入项符合类型,获取这个输入项;如果下一个输入项不符合类型,抛出“InputMismatchException”异常,因此最好将nextXxx()和hasNextXxx()结合使用。Xxx可以是Byte、Short、Int、Long、Float或Double。如果希望获取下一个String类型的输入项,直接使用next()即可;如果希望获取下一行,直接使用nextLine()即可。
注:缺省情况下,Scanner类使用空白(包括空格、Tab、回车)作为输入项之间的分隔符。如果希望更改分隔符,可以通过useDelimiter(”转义字符/正则表达式”)方法实现。
Scanner类的基本实现:
var 变量名 = new Scanner(字符/字符串/File对象/System.in); ——创建Scanner实例(从字符/字符串/File对象/标准输入中解析基本数据类型值或字符串值)
while (变量名.hasNextXxx()) {
System.out.println(变量名.nextXxx());
}
注:“hasNextXxx()”方法和“nextXxx()”方法同时使用时,“hasNextXxx()”方法中的Xxx最好与“nextXxx()”方法中的Xxx保持一致,否则有可能会出现意料之外的问题。