Java-常用API-2

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