Scanner
正文前的ingredients(佐料)
implements:工具
Iterator [iteratə]:迭代器
stream:数据流
delimiting:划界
用法
例一:
Scanner scaner02 = new Scanner(System.in);//new一个Scanner类
//然后开始接收用户数据,需要区分类型,比如int、String…
int a = scaner02.nextInt();
String str = scaner02.nextLine();
String alpabet = scaner02.next();
scaner02.close();
import java.util.Scanner;
public class Scanner02 {
public static void main(String[] args) {
Scanner scanner02 = new Scanner(System.in);
int a = scanner02.nextInt();
String str = scanner02.nextLine();
System.out.println(a);
System.out.println("that is it");
System.out.println(str+"that is it");
}
}
例如上方代码:输入1 (空白处为3个空格)
输出结果为:
1
1
that is it
that is it
说明:只要调用scanner02.nextxxx(),系统就会等待用户输入,其中需要注意的是:scanner02.nextInt()输入值后按回车结束调用;scanner02.nextLine()以回车结束调用;对比下方代码:
import java.util.Scanner;
public class Scanner02 {
public static void main(String[] args) {
Scanner scanner02 = new Scanner(System.in);
String str = scanner02.nextLine();
int a = scanner02.nextInt();
System.out.println(a);
System.out.println("that is it");
System.out.println(str+" that is it");
}
}
输入:
wse
12
输出:
12
that is it
wse that is it
总结:第一个代码中,如果输入1red,系统直接报错,原因为nextInt()仅接收int类型的数据;如果输入1 red,系统输出为
1
red//前边有三个空格;nextLine()接收回车键之前所有的字符
例二:
- scanner02.next()与scanner02.nextLine()的区别,不写了。
- hasnextLine()可以用来判断是否还有字符串输入。
- 下方示例:
输入:
12
输出:
a
import java.util.Scanner;
public class Scanner02 {
public static void main(String[] args) {
Scanner scanner02 = new Scanner(System.in);
int a = 96;
if (scanner02.hasNext()) {
a++;
System.out.println((char)a);
}
}
}
输入:
d
输出:
aha
import java.util.Scanner;
public class Scanner02 {
public static void main(String[] args) {
Scanner scanner02 = new Scanner(System.in);
int a = 96;
if (scanner02.hasNextInt()) {
a++;
System.out.println((char)a);
}else{
System.out.println("aha");
}
}
}
总结:new了scanner02以后,只要程序在执行流程语句的过程中遇到scaner02.nextInt();之类的语句,系统都会等待输入