使用Scanner类完成各种数据类型的输入
Scanner类为jdk1.5之后提供的专门输入类,可以完成输入操作,也可以对输入的数据进行验证。
接下来直接展示使用scanner类输入各种的数据类型。
//1.验证输入基本数据类型
package chapter_twelve;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in); //Scanner可以接收字节流InputStream实例或文件类File的实例
boolean temp = sc.nextBoolean(); //接收boolean类型的数据输入
int temp01 = sc.nextInt(); //接收整型数据的收入
float temp02 = sc.nextFloat(); //接收字符型数据的输入
double temp03 = sc.nextDouble(); //接收double数据类型的输入
String temp04 = sc.next(); //接收以空格为分隔符的字符串内容
sc.nextLine(); //清空上次输入数据的换行符
String temp05 = sc.nextLine(); //接收以换行符为分隔符的字符串内容
short temp06 = sc.nextShort(); //接收短整型数据类型的输入
long temp07 = sc.nextLong(); //接收长整型的数据类型的输入
BigDecimal temp08 = sc.nextBigDecimal(); //接收大整型数据类型的输入
System.out.println("输入的数据分别为:\n" + temp + "\n" +
temp01 + "\n" + temp02 + "\n" +
temp03 + "\n" + temp04 + "\n" +
temp05 + "\n" + temp06 + "\n" +
temp07 + "\n" + temp08);
}
}
//2.验证输入其它数据类型数据
package chapter_twelve;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in); //Scanner可以接收字节流InputStream实例或文件类File的实例
System.out.println("请输入日期(yyyy-MM-dd)格式:");
Date date = null;
//使用sc.hasNext()判断输入的字符串是否匹配正则表达式, 从而实现输入任何数据类型
if(sc.hasNext("^\\d{4}-\\d{2}-\\d{2}$")){ //类似还有sc.hasNextInt()、sc.hasNextFloat()判断输入的是否为整型和浮点型...
String string = sc.next("^\\d{4}-\\d{2}-\\d{2}$");
date =
new SimpleDateFormat("yyyy-MM-dd"). //实例化日期模板
parse(string); //将用户输入的日期转化为真正的日期类型
}
System.out.println("输入的日期为: \n" + date);
}
}
运行结果
//1.结果
true
12
12.3
21.45
hello
Hello World!!!
12
25556
3987456
输入的数据分别为:
true
12
12.3
21.45
hello
Hello World!!!
12
25556
3987456
//2.结果
请输入日期(yyyy-MM-dd)格式:
2020-07-06
输入的日期为:
Mon Jul 06 00:00:00 CST 2020
小伙伴们要注意的是在每次输入一个数据时,使用nextLine()接收下个数据之前,要记得先使用nextLine()方法吸收掉上次输入数据遗留的换行符哦~