JAVA练题笔记DAY11

文章展示了使用JDK7和JDK8的不同方式计算日期差,以及如何将十进制数转换为二进制。此外,还介绍了自定义parseInt方法以及正则表达式的应用,如手机号和邮箱格式验证。最后,文章通过示例演示了如何从键盘输入整数直到它们的和超过200,并将这些数字存储在集合中。
摘要由CSDN通过智能技术生成

1~使用两种JDK计算天数

JDK7

String birthday="2002年8月10日";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
        Date date=sdf.parse(birthday);
        long birthdayTime=date.getTime();
        //获取当前时间的毫秒值
        long todayTime=System.currentTimeMillis();
        //计算间隔多少天
        long time=todayTime-birthdayTime;
        System.out.println(time / 1000 /60 /60 /24);

JDK8

//JDK8
        LocalDate ld1=LocalDate.of(2000,1,1);
        LocalDate ld2=LocalDate.now();
        long days = ChronoUnit.DAYS.between(ld1, ld2);
        System.out.println(days);

2~十进制转为二进制

public static void main(String[] args) {

        System.out.println(toBinaryString(123));
    }

    private static String toBinaryString(int number) {
        //核心逻辑:不断地去除以2,得到余数,一直到商为0就结束
        //还需要把余数拼接起来

        //定义一个StringBuilder用来拼接余数
        StringBuilder sb=new StringBuilder();

    //利用循环不断地除以2获取余数
        while (true){
            if(number==0){
                break;
            }
            //获取余数 %
            int remaindar=number%2;

            //倒着拼接
            sb.insert(0, remaindar);
                number=number/2;
        }
        return sb.toString();
    }

3~实现parseInt方法

public static void main(String[] args) {
        //字符串中只能是数字不能有其他符号
        //最少一位
        //0不能开头

        //定义一个字符串
        String str="12346789";

        //使用正则表达式
        if(!str.matches("[1-9]\\d{0,9}")){
            System.out.println("数据格式有误");
        }else
            System.out.println("正确");

        //定义一个变量表示最终的结果
        int number=0;
        //遍历字符串得到里面的每一个字符
        for (int i = 0; i < str.length(); i++) {
            int a=str.charAt(i)-'0';
            //把每一位数字放到number中
            number=number*10+a;
        }
        System.out.println(number);
    }

4~正则表达式的练习

public static void main(String[] args) {

        String regex1="1[3-9][0-9]{3}";
        String regex2="1[3-9]\\d{3}";
        //正则表达式需要从左往右书写
        //根据需求,拆分结构
        System.out.println("13549".matches(regex1));

       //座机号
       String regex3="0\\d{2,3}-?[1-9]\\d{4,9}";
            // 0:  表示一定是0开头;
        // \\d{2,3} 表示从第二位开始,可以是任意数字,可以出现2~3次;
        //  ? : 表示次数,零次或者一次

        //邮箱号码
        // 1234@qq.com   dadasd@163.com     dasds_dasjg1@pci.com.cn
        //分为三部分:
        // 第一部分: @的左边 :  \\w+   :任意的字母数字下划线出现一次就行
        // 第二部分 : @ 只能出现一次
        // 第三部分:
        //  3.1: .的左边: [\\w&&[^_]]{2,6}  : 任意的字母加数字,总共出现2-6次(不能出现下划线)
        //  3.2: .\\..
        //  3.3: 大小写字母,只能出现2-3次 [a-zA-Z]{2,3}
        // 可以把3.2,3.3看做一组,该组出现 一次或者两次
        String regex4="\\w+@[\\w&&[^_]]{2,6}({\\.[a-zA-Z]{2,3}){1,2}";

            //any-role  idea自带编写正则表达式插件
       String ste = "/^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/";
    }

5~键盘录入一些1~100之间的整数,并添加到集合中,直到集合中所有数据和超过200为止

//1·创建集合
        ArrayList<Integer> arr=new ArrayList<>();
        int total=200;
        //2·录入一些整数
        Scanner sc=new Scanner(System.in);
        while(total>0) {
            System.out.println("请输入1~100之间的整数");

            //使用nextLine用法
            String str=sc.nextLine();
            int num=Integer.parseInt(str);

            if(num<0 || num>100){
                System.out.println("数字过大");
                continue;
            }
            total -= num;
            System.out.println(total);
            //3·添加到集合中,直到和超过200
            arr.add(num);
        }
        for (int i = 0; i < arr.size(); i++) {
            System.out.println(arr.get(i));
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值