Day12
1 正则表达式
作用:拿着我们指定好的规则,去判断数据是否符合这个规则
1.指定规则:String regex = “[0-9]{17}[0-9x]”
2.拿着数据与规则作比较: input.matches(regex)-.如果匹配,matches方法返回true
注意:单斜杆表示转义字符,所以在正则中如果想表示单个斜杆,需要些双斜杆
至于正则表达式的对照关系,详见下表:
2 包装类
1.Java的数据类型只有两大类: 八大基本类型 与 引用类型
2.包装类是应用类的一种,包装类与基本类型一一对应,也是8种
3.基本类型只能存放自己类型的数据,没有其他额外的功能
4.包装类是对基本类型进行了包装,提供了丰富的功能,包装类型是进本类型的拓展
至于包装类的对应关系,详见下表:
5.包装类型Integer的创建方式:
1)Integer i1 = new Integer(5);
2)Integer i2 = new Integer.valueOf(5);有高效的效果,数据在-128~127的范围内,才有高效的效果
3)Integer i3 = new 5;自动装箱:编译器会把int类型5装箱,编程Integer,底层调用的方法:valueOf(5);
6.包装类型Double的创建方式:
1)Double d1 = new Double (3.4);没有高效的效果,new一次,创建一个包装类对象
2)Double d2 = new Double.valueOf(3.4);这个也没有高效的效果,只有Integer有
7.Integer的常用方法:i1.parsent(“80”);将字符串80转换成int类型的80
Double的常用方法:d1.parent(“80”);将字符串80转成double类型的80
8.自动装箱与自动拆箱
1) Integer i3 = 5;自动装箱 [基本类型 到 包装类型]:
编译器会把int 类型的"5"装箱,变成Integer类型,底层调用的方法:valueOf(5)
2) int n = 3;自动拆箱[包装类型 到基本类型]
编译器会把包装类型的i3中的数据提取出来,把这个值赋值给基本类型int,底层调用的方法:i3.intValue();
package net.csdn.day12;
public class TextBox {
public static void main(String[] args) {
//1.定义包装类型Integer类型的对象
Integer i1 = new Integer(5);
Integer i2 = Integer.valueOf(5);
//2.自动装箱
/*底层发生的是:Integer.valueOf(5);
* valueOf()的方向:int---> Integer*/
Integer i3 = 5;
//3.自动拆箱
/*底层发生的是:i1.intValue()
* intValue()的方向:Integer---> int*/
int i4 = i1;
}
}
3 浮点数运算不精确的解决方案:BigDecimal
1.如果使用一个工具,必须先创建这个类的对象,如果想创建对象,必须先了解它提供了那些构造方法
2.创建BigDecimal对象的方式:
1)BigDecimal(double val):将double类型的数据作为参数,交给BigDecimal对象[不用这个方法,因为double本身就不精确,导致BigDecimal也同样会不精确]
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对象,并不会真的帮我们在外部创建一个新的文件/文件夹
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()
}
}