Objects类
Object类中提供的equals比较方法有空指针会直接报错,这时就需要用到Objects类中的方法
- public static boolean equals(Object a,Object b) 先做非空检查,再比较两个对象
- public static boolean isNull(Object a) 判断是否为空
- public static boolean nonNull(Object a) 判断是否不为空运行
Student s3=new Student();
Student s4=null;
System.out.println(Objects.equals(s3, s4));//其中一个为空直接返回false
System.out.println(Objects.isNull(s4));
System.out.println(Objects.nonNull(s4));
运行结果
Biginteger类
拥有非常高的上限,可以用来处理超过long long的整数
- public BigIntrger(int num,Random rnd) 获取随机大整数,范围:[0-2的num次方-1]
- public BigInteger(Sting val) 获取指定的大整数
- public BigInteger(Sting val),int radix) 获取指定进制的大整数
- public static BigInteger valueOf(long val) 静态方法获取BigInteger对象,内部有优化
//0-31
System.out.println(new BigInteger(5, new Random()));
System.out.println(new BigInteger("50000000000000000000000000000000000000"));
//四进制的330转换到十进制
System.out.println(new BigInteger("330", 4));
运行结果
BigDecimal类
常用于小数的精确计算
- public BigDecimal add(BigDecimal a) 加法
- public BigDecimal subtract(BigDecimal a) 减法
- public BigDecimal multiply(BigDecimal a) 乘法
- public BigDecimal divide(BigDecimal a,精确几位,舍入模式) 除法
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.util.Objects;
import java.util.Random;
public class Main {
public static void main(String[] args){
BigDecimal bd1=BigDecimal.valueOf(10.0);
BigDecimal bd2=BigDecimal.valueOf(3.5);
BigDecimal bd3=bd1.add(bd2);
BigDecimal bd4=bd1.subtract(bd2);
BigDecimal bd5=bd1.multiply(bd2);
//除不尽时需要设置保留几位(2位,四舍五入)
BigDecimal bd6=bd1.divide(bd2,2, RoundingMode.HALF_UP);
System.out.println(bd3);
System.out.println(bd4);
System.out.println(bd4);
System.out.println(bd5);
System.out.println(bd6);
}
}
运行结果
正则表达式
验证字符串的一种规则,或在文本中查找满足需要的内容,表达式类型为String
如:
String qq="1234454567";
//检验规则:首位不为0,首位后共5-19位数字
System.out.println(qq.matches("[1-9]\\d{5,19}"));
结果:true
字符类
- [abc]:只能是a,b,c
- [^abc]除a,b,c之外的所有字符
- [a-zA-Z]a到z,A到Z
- [a-d[m-p]]a到d或m到p
- [a-z&&[def]]a-z与def的交集,即d,e,f
- [a-z&&[^bc]]a到z与非bc的交集
- [a-z&&[^m-p]]a-z与除了m-p的交集
预定义字符(Java中,\\表示\)
- . 任何字符
- \d 一个数字
- \D 非数字
- \s 一个空白字符
- \S 一个非空白字符
- \w 英文,数字,下划线
- \W 一个非单词字符
数量词
- X? X出现一次或零次
- X* X出现零次或多次
- X+ X出现一次或多次
- X{n} X出现正好n次
- X{n,} X出现至少n次
- X{n,m} X出现在n-m次之间(包含)
//检测此字符串满足:除下划线外所有英文或数字字符出现6次
System.out.println("45dtgr".matches("[\\w&&[^_]]{6}"));
运行结果:true