-
概述:
正确的字符串格式规则。常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。
-
常用语法
-
String 提供了支持正则表达式的方法
- matches(正则) : 当前字符串能否匹配正则表达式
- replaceAll(正则,子串):替换子串
- split(正则) : 拆分字符串
-
案例
//需求:接受用户输入的身份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号") } } }
-
-
概念:
把基本类型进行包装,提供更加为完善的功能.
基本类型是没有任何功能的,只是一个变量,记录值,而包装类可以有更加丰富的功能
-
与基本类型的对应关系:
-
测试包装类:-------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 } }
-
-
概念:
-
自动装箱: 把 基本类型 包装成对应的 包装类型 的过程 【基本类型 到 包装类型】
- 自动装箱时,底层发生的代码: 包装类.valueOf(参数值)
-
自动拆箱: 从包装类型的值,自动变成 基本类型的值 【包装类型 到 基本类型】
- 自动拆箱时,底层发生的代码: 对象名.要转换的类型Value();
//创建Integer包装类的两种方式 Integer i1 = new Integer(127); Integer i2 = Integer.valueOf(127) //现在的创建方式: 自动装箱 Integer i3 = 127; //自动拆箱: int i4 = i1;
-
-
作用: 常用来解决浮点数运算不精确的问题
-
创建对象:
-
BigDecimal(double val)
将double类型的数据作为参数,交给BigDecimal对象【不用,因为double本身不精确】
-
BigDecimal(String val)
将String类型的数据作为参数,交给BigDecimal对象【用这个】
-
注意: double数据 转为 String数据 直接拼接一个空串 “” 即可
-
-
使用对象进行加减乘除 *** 作
注意: 进行除法 *** 作时,会出现除不尽的情况 抛出算数异常 这时候需要指定保留几位小数以及舍入方式
//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类的对象:
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方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)