ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CGBTN2108-DAY12总结复习

2021-09-16 10:06:56  阅读:119  来源: 互联网

标签:DAY12 复习 File println file new 类型 Integer CGBTN2108


DAY12 复习

1. 正则表达式

作用: 拿着我们指定好的规则,去判断数据是否符合这个规则

  1. 指定规则:String regex = “[0-9]{17}[0-9X]”;
  2. 拿着数据与规则做比较:input.matches(regex)–>如果匹配,matches方法返回true
    注意:单个斜杠表示转义字符,所以在正则中如果想要表示单个斜杠,需要写双斜杠
    至于正则表达式的对照关系,详见笔记中正则速查表
    在这里插入图片描述

2. 包装类

  1. Java的数据类型只有两大类:8大基本类型与引用类型
  2. 包装类是引用类型中的一种,包装类与基本类型一一对应,也有8种
  3. 基本类型只能存自己类型的值,没有其他额外的功能
  4. 包装类型是对基本类型进行了包装,提供了丰富的功能,包装类型是基本类型的拓展
    在这里插入图片描述
  5. 包装类型Integer的创建方式:
    1)Integer i1 = new Integer(5); 没有高效的效果,new一次,创建一个包装类对象
    2)Integer i2 = Integer.valueOf(5); 有高效的效果,数据在-128~127的范围内,才有高效的效果
    3)Integer i3 = 5; 自动装箱:编译器会把int类型5装箱,变成Integer,底层调用的方法:valueOf(5)
  6. 包装类型Double的创建方式:
    1)Double d1 = new Double(3.4); 没有高效的效果,new一次,创建一个包装类对象
    2)Double d2 = Double.valueOf(3.4);这个也没有高效的效果,只有Integer有
  7. Integer的常用方法:i1.parseInt(“80”);将字符串80转成int类型的80
    Double的常用方法:d1.parseDouble(“80”);将字符串80转成double类型的80
  8. 自动装箱与自动拆箱:
    1)Integer i3 = 5; 自动装箱【基本类型 到 包装类型】
    编译器会把int类型的5装箱,变成Integer类型,底层调用的方法:valueOf(5)
    2)int n = i3;自动拆箱【包装类型 到 基本类型】
    编译器会把包装类型的i3中的数据取出来,把这个值赋值给基本类型int
    底层调用的方法:i3.intVlaue();
package cn.tedu.api;
/*本类用于测试自动装箱与自动拆箱*/
public class TestBox {
    public static void main(String[] args) {
        //1.定义包装类型Integer类型的对象
        Integer i1 = new Integer(5);
        Integer i2 = Integer.valueOf(5);

        //2.现在的方式:
        /*1.自动装箱:编译器会自动把基本类型int 5,包装成对应的包装类型Integer
        然后交给i3来保存,自动装箱底层发生的代码:Integer.valueOf(5);
        valueOf()的方向:int ---> Integer*/
        Integer i3 = 5;//不会报错的,这个现象就是自动装箱

        /*2.自动拆箱:编译器会自动把包装类型的i1拆掉“箱子”,变回基本类型数据5
        * 然后交给基本类型int类型的变量i4来保存,底层发生的代码:i1.intValue()
        * intValue()的方向:Integer ---> int*/
        int i4 = i1;//不会报错的,这个现象就是自动拆箱
    }
}

3. 浮点数运算不精确的解决方案:BigDecimal

  1. 如果使用一个工具,必须先创建这个类的对象,如果想创建对象,必须先了解它提供了哪些构造方法
  2. 创建BigDecimal对象的方式:
    1)BigDecimal(double val) :将double类型的数据作为参数,交给BigDecimal对象【不用,因为double本身不精确】
    2)BigDecimal(String val) :将String类型的数据作为参数,交给BigDecimal对象【用这个】
    注意:double->String直接拼接一个空串“”就可以
  3. 使用对象进行加减乘除操作,注意:除法除不尽时会抛出异常,所以需要指定除不尽时保留几位小数以及舍入方式

4. File 文件类

  1. 创建File类的对象:new File(String pathname) :这个参数是一个String类型的路径名,这个路径可能是:
    1)文件的路径 “E:\ready\1.txt”
    2)文件夹的路径 “E:\ready\a”
    3)之前不存在的文件/文件夹的路径:这个路径暂时在windows中还未创建出来
    注意:new File类的对象只是在内存中多个一个Java对象,并不会真的帮我们在外部创建一个新的文件/文件夹
    在这里插入图片描述
  2. 复习代码:
    在这里插入图片描述
package cn.tedu.review;

import java.io.File;
import java.io.IOException;

/*本类用于复写File类的API*/
public class TestFile {
    public static void main(String[] args) throws IOException {
        //1.创建File类的对象,注意File类需要导包
        File file = new File("E:\\ready\\1.txt");

        //2.测试文件的常用方法
        System.out.println(file.length());//获取文件的字节量
        System.out.println(file.exists());//判断文件是否存在
        System.out.println(file.isFile());//判断当前file对象代表的路径是否是文件
        System.out.println(file.isDirectory());//判断当前file对象代表的路径是否为文件夹
        System.out.println(file.getName());//1.txt,获取文件名
        System.out.println(file.getParent());//E:\ready,获取父级路径,不包含文件名
        System.out.println(file.getAbsolutePath());//E:\ready\1.txt,获取带盘符,带文件名的绝对路径

        //3.测试file对象对应在外部windows中的创建与删除
        file = new File("E:\\ready\\5.txt");
        System.out.println(file.createNewFile());//创建一个之前不存在的文件,注意有异常抛出

        file = new File("E:\\ready\\aaa");
        System.out.println(file.mkdir());//创建一个之前不存在的单层文件夹

        file = new File("E:\\ready\\j\\q\\k");
        System.out.println(file.mkdirs());//创建一个之前不存在的多层文件夹

        System.out.println(file.delete());//只能删除空文件夹与文件
        file = new File("E:\\ready\\5.txt");
        System.out.println(file.delete());

        //4.文件列表测试
        file = new File("E:\\ready");
        String[] list = file.list();//返回值类型是一个String[],数组里都是String类型的对象
        File[] fs = file.listFiles();//返回值类型是一个File[],数组里都是File类型的对象
        //如果想要能够拿到File对象进一步做其他操作的话,需要使用listFiles()

    }
}

标签:DAY12,复习,File,println,file,new,类型,Integer,CGBTN2108
来源: https://blog.csdn.net/weixin_43884234/article/details/120321523

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有