Java(day12)正则表达式、自动装箱、自动拆箱、BigDecimal、File、IO流

Java(day12)正则表达式、自动装箱、自动拆箱、BigDecimal、File、IO流,第1张

Java(day12)正则表达式、自动装箱、自动拆箱、BigDecimal、File、IO流  正则表达式regex

用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。

Matches(正则) : 当前字符串能否匹配正则表达式、

package cn.tedu.api;

import java.util.Scanner;

//本类用于正则表达式的案例
//接受用户的身份z号
public class TestRegex {
    public static void main(String[] args) {
        //身份z号:前十七位是数字,第18位可能是数字
        String regex="[0-9]{17}[0-9x]";
        String r="//d{17[0-9x]}";
        System.out.println("请输入你的身份z号:");
        String input=new Scanner(System.in).nextLine();
        if(input.matches(regex)){
            System.out.println("输入正确");
        }else {
            System.out.println("输入有误");
        }
    }
}
运行结果:
请输入你的身份z号:
14259512365419851x
输入正确
包装类 

 把基本类型进行包装,提供更加完善的功能。

 包装类型也是引用类型,默认值是null

package cn.tedu.api;
//测试包装类
public class TestNumber {
    static Integer i0;
    public static void main(String[] args) {
        System.out.println(i0);
    }
}
运行结果:
null
Integer

只有Integer有高效效果,如果使用integer.valueof()的创建方式,并且数据在-128-127范围内,相同的数据只会存一次,后续再存都是使用之前存过的数据

package cn.tedu.api;
//测试包装类
public class TestNumber {
    
    public static void main(String[] args) {
        //创建方式一
        Integer i1=new Integer(5);
        Integer i11=new Integer(5);
        System.out.println(i1==i11);
        //创建方式二
        Integer i2=Integer.valueOf(127);
        Integer i3=Integer.valueOf(127);
        System.out.println(i2==i3);     

    }
}

运行结果:
false
true

 Interger的"== "和"equals"

package cn.tedu.reciew;
//回顾包装类
public class TestBox {
    public static void main(String[] args) {
        //创建方式一
        Integer i1 = new Integer(127);
        //创建方式二
        Integer i2=Integer.valueOf(127);
        //创建方式三
        Integer i3=127;
        System.out.println(i1==i2);
        System.out.println(i1==i3);
        System.out.println(i2==i3);
        System.out.println(i1.equals(i2));
        System.out.println(i1.equals(i3));
        System.out.println(i2.equals(i3));
    }
}
运行方式:
false
false
true
true
true
true

Integer.parseInt():将string类型转化为int类型

System.out.println(Integer.parseInt("800")+8);
运行结果:
808
Double:
package cn.tedu.api;
//测试包装类
public class TestNumber {

    public static void main(String[] args) {        
        //创建方式一
        Double d1=new Double(5.5);
        Double d2=new Double(5.5);
        System.out.println(d1==d2);

        //创建方式二
        Double d3=Double.valueOf(5.5);
        Double d4=Double.valueOf(5.5);
        System.out.println(d3==d4);

    }
}
运行结果:
false
false

Double.parseDouble():将string类型转化为double类型

System.out.println(Double.parseDouble("2.2")+1.1);
运行结果:
3.3000000000000003

自动装箱:编译器会自动把基本类型int 5包装成包装类型integer,然后交给引用类型的变量i5来保存,自动装箱的底层发生的代码:Interger.valueof(5),valueof()的方向:int--->Integer

Integer i3=5;

自动拆箱:编译器会把包装类型的i1拆掉箱子,变回基本的数据127,然后把这个值交给int类型的变量i4来保存,自动拆箱时的底层发生的代码i1.intValue(),valueof()的方向:Integer---->int

int i4=i1;

package cn.tedu.api;
//用于自动装箱和自动拆箱
public class TestBox {
    public static void main(String[] args) {
        Integer i1=new Integer("127");
        Integer i2=Integer.valueOf("127");
        //自动装箱:
        Integer i3=5;
        //自动拆箱:
        int i4=i1;
    }
}
BigDecimal:解决浮点数计算不精确的问题
package cn.tedu.api;

import java.math.BigDecimal;
import java.util.Scanner;

//解决浮点数计算不精确的问题
public class TestBigDecimal {
    public static void main(String[] args) {
      
        f2();
    }

    private static void f2() {
        System.out.println("输入第一个数字:");
        double a=new Scanner(System.in).nextDouble();
        System.out.println("输入第二个数字:");
        double b=new Scanner(System.in).nextDouble();
        BigDecimal b1=new BigDecimal(a+"");    //将double类型变成string类型
        BigDecimal b2=new BigDecimal(b+"");
        BigDecimal b3;
        b3=b1.add(b2);
        System.out.println("加法的结果:"+b3);
        b3=b1.subtract(b2);
        System.out.println("减法的结果:"+b3);
        b3=b1.multiply(b2);
        System.out.println("乘法的结果:"+b3);
        //除法运算除不尽时会抛出异常
        //使用重载的divide(m,n,o)m是除数,n是保留的位数,o是采用四舍五入
        b3=b1.divide(b2,3,BigDecimal.ROUND_HALF_UP);
        System.out.println("除法的结果:"+b3);
}
运行结果:
输入第一个数字:
15
输入第二个数字:
3.3
加法的结果:18.3
减法的结果:11.7
乘法的结果:49.50
除法的结果:4.545

判断文件的字节量:

System.out.println(file.length());

判断文件是否存在:

 System.out.println(file.exists());

判断当前file对象是否为文件

System.out.println(file.isFile());

判断当前file对象是否为文件夹

System.out.println(file.isDirectory());

 获取文件完整的名字

System.out.println(file.getName());

获取文件的父级路径

System.out.println(file.getParent());

获取带盘符的文件的绝对路径

System.out.println(file.getAbsolutePath());

文件的创建

 System.out.println(file2.createNewFile());

创建文件夹

File file3=new File("D:\ready\m");
System.out.println(file3.mkdir());

创建多层文件夹

 File file4=new File("D:\ready\a\b\c");
 System.out.println(file4.mkdirs());

删除:只能删除文件和空文件夹

System.out.println(file2.delete());

查看文件列表,数组中的每个文件都是String对象,可以直接查看数组中的元素

File file5=new File("D:\read");
String[] fs=file5.list();
System.out.println(Arrays.toString(fs));
运行结果:
[1.txt, ddd, x]

 数组中的每个元素都是File对象,可以直接使用file的方法

File file5=new File("D:\read");
File[] fs1=file5.listFiles();
System.out.println(fs1[1].getName());
运行结果:
ddd

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5672932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存