Java-常用API-2

发布于:2024-04-18 ⋅ 阅读:(24) ⋅ 点赞:(0)

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