正则表达式regex
用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。
Matches(正则) : 当前字符串能否匹配正则表达式、
package cn.tedu.api;
import java.util.Scanner;
//本类用于正则表达式的案例
//接受用户的身份证号
public class TestRegex {
public static void main(String[] args) {
//身份证号:前十七位是数字,第18位可能是数字
String regex="[0-9]{17}[0-9x]";
String r="//d{17[0-9x]}";
System.out.println("请输入你的身份证号:");
String input=new Scanner(System.in).nextLine();
if(input.matches(regex)){
System.out.println("输入正确");
}else {
System.out.println("输入有误");
}
}
}
运行结果:
请输入你的身份证号:
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
File:
判断文件的字节量:
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