java大数据学习第十二天---Regex正则表达式 包装类 自动装箱和自动拆箱 BigDecimal File文件类

java大数据学习第十二天---Regex正则表达式 包装类 自动装箱和自动拆箱 BigDecimal File文件类,第1张

java大数据学习第十二天---Regex正则表达式 包装类 自动装箱和自动拆箱 BigDecimal File文件类 正则表达式Regex
  1. 概述:

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

  2. 常用语法

    1. String 提供了支持正则表达式的方法

      • matches(正则) : 当前字符串能否匹配正则表达式
      • replaceAll(正则,子串):替换子串
      • split(正则) : 拆分字符串
    2. 案例

      //需求:接受用户输入的身份z号,将判断的结果输出
      public class TestRegex{
          public static void main(String[] args){
               //1.编辑正则表达式
              //身份z号规律:一共18位 前17位数字,第18位有可能数字 有可能是X
            		String regex = "[0-9]{17}[0-9X]"//创建regex正则规则 作为判定标准
                     
                      
                      
              //String regex = "\d{17}[0-9X]";
              
              
               //2.提醒用户输入身份z号
                    System.out.println("请输入身份z号")  
                    String input = new Scanner(System.in).nextLine();
              //3.判断用户输入的身份z号是否符合要求
              if(input.matches(regex)){//判断语句用对象调用matches(regex)
                   System.out.println("恭喜您!身份z号输入正确") 
              }else{
                   System.out.println("您输入的身份信息有误,请输入正确的身份z号") 
              }
          }
      }
      
包装类
  1. 概念:

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

    基本类型是没有任何功能的,只是一个变量,记录值,而包装类可以有更加丰富的功能

  2. 与基本类型的对应关系:

  3. 测试包装类:-------int类型包装类Integer double类型包装类Double

    • 创建对象的方式:

      • 包装类名 对象名 = new 包装类名(参数值);------方法一

      • 包装类名 对象名 =包装类名.valueOf(参数值)-----方法二

    • 常用方法:

      • parseInt()----将String类型数据转换为int类型

        System.out.println(Integer.parseInt(“800”)+8);//808

      • parseDouble()----将String类型数据转换为double类型

        System.out.println(Double.parseDouble(“2.2”)+1.1);//3.3

    public class TestNumber{
        //创建成员变量 包装类Interger
        static Interger i0;
        public static void main(String[] args){
            
            
            System.out.println(i0);//null
            
            //创建int类型对应的包装类型Integer的对象---方式1
            Integer i1 = new Integer(5);
            Integer i11 = new Integer(5);
            System.out.println(i1==i11);//false   Integer是引用类型 ==比较的是地址值 
            
            //创建int类型对应的包装类型Integer的对象---方式2
            Integer i2 = Integer.valueOf(127);
            Integer i3 = Integer.valueOf(127);
            
             System.out.println(i2==i3);//true
            
            
            Integer i4 = Integer.valueOf(300);
            Integer i5 = Integer.valueOf(300);
            System.out.println(i4==i5);//false
            
            
            
            //创建double类型的包装类型Double的对象---方式1
            Double d1=new Double(3.14);
            Double d2=new Double(3.14);
            System.out.println(d1==d2);//false,引用类型 比较地址值
            //创建double类型对应的包装类型Double的对象---方法2
            
            Double d3 = Double.valueOf(3.14);
            Double d33 = Double.valueOf(3.14);
            System.out.println(d1==d3);//false
            System.out.println(d3==d33);//false
            
            
            
            
            
            //测试常用方法
            //parseInt():将String类型数据转换为int类型
            System.out.println(Integer.parseInt("800")+8);//808
            //parseDouble():将String类型数据转换为double类型
            System.out.println(Double.parseDouble("2.2")+1.1);//3.3
            
        }
    }
    
    
自动装箱和自动拆箱
  1. 概念:

    • 自动装箱: 把 基本类型 包装成对应的 包装类型 的过程 【基本类型 到 包装类型】

      • 自动装箱时,底层发生的代码: 包装类.valueOf(参数值)
    • 自动拆箱: 从包装类型的值,自动变成 基本类型的值 【包装类型 到 基本类型】

      • 自动拆箱时,底层发生的代码: 对象名.要转换的类型Value();
      //创建Integer包装类的两种方式
      Integer i1 = new Integer(127);
      Integer i2 = Integer.valueOf(127)
      
      //现在的创建方式: 自动装箱
      Integer i3 = 127;
      
      
      
      
      
      //自动拆箱:
      int i4 = i1;
       
      
      
BigDecimal
  1. 作用: 常用来解决浮点数运算不精确的问题

  2. 创建对象:

    • BigDecimal(double val)

      ​ 将double类型的数据作为参数,交给BigDecimal对象【不用,因为double本身不精确】

    • BigDecimal(String val)

      ​ 将String类型的数据作为参数,交给BigDecimal对象【用这个】

    • 注意: double数据 转为 String数据 直接拼接一个空串 “” 即可

  3. 使用对象进行加减乘除 *** 作

    ​ 注意: 进行除法 *** 作时,会出现除不尽的情况 抛出算数异常 这时候需要指定保留几位小数以及舍入方式

    //1.创建对象----不用
    BigDecimal  bd1 = new BigDecimal(double val)
    BigDecimal  bd2 = new BigDecimal(double val)
    //2.创建对象----用
    BigDecimal  bd3 = new BigDecimal(double val+"") 
    BigDecimal  bd4 = new BigDecimal(double val+"")  
        
    //3.加减乘除    需要定义一个新的变量来保存结果
        BigDecimal bd5;
    	bd5 = bd3.add(bd4);//加
    	bd5 = bd3.subtract(bd4);//减
    	bd5 = bd3.multiply(bd4);//乘
    	bd5 = bd3.divide(bd4);//除----------出现除不尽时,会报错
    
    	bd5 = bd3.divide(bd4,3,BigDecimal.ROUND_HALF_UP);//除以bd4  保留3位小数  四舍五入
        
    
File 文件类
  1. 创建File类的对象:

    ​ new File(String pathname) :这个参数是一个String类型的路径名,这个路径可能是:
    ​ 1)文件的路径 “D:ready1.txt”
    ​ 2)文件夹的路径 “D:readya”
    ​ 3)之前不存在的文件/文件夹的路径:这个路径暂时在windows中还未创建出来
    注意:new File类的对象只是在内存中多个一个Java对象,并不会真的帮我们在外部创建一个新的文件/文件夹

 //1.创建File类对象
        
        File file = new File("D:\ready.txt");
 //2.测试常用方法
        System.out.println(file.length());//3    获取当前文件的字节量
        System.out.println(file.exists());// true   判断文件是否存在
        System.out.println(file.isFile());//true    判断当前file对象是文件吗
        System.out.println(file.isDirectory());//false  判断当前file对象是文件夹吗
        System.out.println(file.getName());//1.txt    获取当前file对象的完整的文件名
        System.out.println(file.getParent());//D:ready  获取当前file对象的父级路径
        System.out.println(file.getAbsolutePath());//D:ready1.txt  获取当前file对象的 带盘符的文件的绝对路径

        //3.测试创建 与 删除
        
        File file2 = new File("D:\ready.txt" );
        //创建一个之前不存在的2.txt 如果创建成功 会返回true
        
        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());//创建不存在的多层文件夹


        
        file2.delete();  //删除文件2.txt
        file4.delete();  //删除空文件夹c  delete删除文件夹时只能删除空文件夹
        file3.delete();  //删除空的m文件夹

        //4.测试展现文件列表
        File file5 = new File("D:\ready");
        String[] list = file5.list();
        System.out.println(Arrays.toString(list));//[1.txt,a]
        //System.out.println(list[0].getName()); // 会报错 因为list这是一个String[],数组中每个元素都是String类型的
                                                //那么我们只能使用String类中的方法,getName()是File类的方法,在这里不能用


        File[] fs = file5.listFiles();
        System.out.println(Arrays.toString(fs));//[D:ready1.txt, D:readya]
        System.out.println(fs[0].getName());//fs是file对象 可以直接使用file方法

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存