使用Scanner类完成各种数据类型输入

22 篇文章 0 订阅

使用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()方法吸收掉上次输入数据遗留的换行符哦~

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gaolw1102

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值