Scanner概述
JDK5以后用于获取用户的键盘输入。
Scanner的构造方法原理
Scanner(InputStream source)
Scanner类的hasNextXxx()和nextXxx()方法
- hasNextXxx() 判断下一个是否是某种类型的元素,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx
- nextXxx() 获取下一个输入项。其中Xxx可以是Int,Double等。
import java.util.Scanner;
public class Mytest3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int num = 0;
while (true){
sc = new Scanner(System.in);
boolean b = sc.hasNextInt();
if(b){
num = sc.nextInt();
break;
}else{
System.out.println("输入的数据类型不正确");
}
System.out.println(b);
}
System.out.println(num);
}
}
请输入一个整数
4.4
输入的数据类型不正确
false
4
4
package org.baidu2;
import java.util.Scanner;
public class Mytest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个数字");
int i = sc.nextInt();
System.out.println("输入第二个数字");
int i1 = sc.nextInt();
System.out.println(i);
System.out.println(i1);
//重新赋值一个字符串类型时,重新在new一个
Scanner sc1 = new Scanner(System.in);
System.out.println("输入第一个字符串");
String s = sc1.nextLine();
System.out.println(s);
//再次赋值一个字符串类型时,重新在new一个
Scanner sc2 = new Scanner(System.in);
System.out.println("输入第二个字符串");
String s1 = sc2.nextLine();
System.out.println(s1);
}
}
运行结果为:
输入第一个数字
2
输入第二个数字
3
2
3
输入第一个字符串
3rrr
3rrr
输入第二个字符串
fff
fff
例如模拟登陆,显示还有多少次机会的代码。
import java.util.Scanner;
public class Mytest4 {
public static void main(String[] args) {
String name = "苏大强";
int num = 123456;
int i = 0;
while (i<3){
//每次都new一个新的
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入用户名");
String sc =sc1.nextLine();
//每次都new一个新的
Scanner sc2 = new Scanner(System.in);
System.out.println("请输入用户密码");
int i1 = sc2.nextInt();
if(i1==num&&sc.equals(name)){
System.out.println("登陆成功");
break;
}else{
System.out.println("登陆失败");
i++;
}
System.out.println("你还有"+(3-i)+"次机会");
}
}
}
运行结果为:
请输入用户名
ee
请输入用户密码
334
登陆失败
你还有2次机会
请输入用户名
343
请输入用户密码
34
登陆失败
你还有1次机会
请输入用户名
苏大强
请输入用户密码
123456
登陆成功