其他分享
首页 > 其他分享> > 字典比较compareTo() 方法详解

字典比较compareTo() 方法详解

作者:互联网

compareTo() 是通过比较字典来得出结论的,比较是基于字符串中每个字符的Unicode值,我们可以使用该方法判断他们是否相等,一般用于BigDecimal的比较

首先我们看compareTo的方法

返回值是整形的,它对应的是第一个字符和参数的第一个字符比较的Unicode差值,如果他们不相同,就会返回他们的的差值,如果相等,就会接着比较第二个字符

实例

BigDecimal对比

有时候我们对比BigDecimal会直接对比int类型,那么用equals对比需要转为一样的类型,否则对比的结果不同

public static void main(String[] args) {
    BigDecimal bigDecimal1 = BigDecimal.valueOf(1);
    System.out.println(bigDecimal1);
    if (bigDecimal1.equals(1)) {
        System.out.println("相等");
    }else {
        System.out.println("不相等");
    }
}

结果

image-20211218140607407

如果不想转为BigDecimal对比,想进行int和BigDecimal对比,我们可以使用compareTo()方法

public static void main(String[] args) {
    BigDecimal bigDecimal1 = BigDecimal.valueOf(1);
    BigDecimal bigDecimal2 = BigDecimal.valueOf(1);
    BigDecimal bigDecimal3 = BigDecimal.valueOf(2);
    int result;
    result = bigDecimal1.compareTo(bigDecimal2);
    System.out.println(result);
    result = bigDecimal1.compareTo(bigDecimal3);
    System.out.println(result);
    result = bigDecimal3.compareTo(bigDecimal1);
    System.out.println(result);

    if (bigDecimal1.compareTo(bigDecimal2) == 0){
        System.out.println("相等");
    }
    if (bigDecimal1.compareTo(bigDecimal3) != 0){
        System.out.println("不相等");
    }
}

结果

image-20211218141350342

String对比

public static void main(String[] args) {
    String str1 = "Strings";
    String str2 = "Strings";
    String str3 = "Strings123";
    int result;
    result = str1.compareTo( str2 );
    System.out.println("str2-str1:"+result);
    result = str2.compareTo( str3 );
    System.out.println("str3-str2:"+result);
    result = str3.compareTo( str1 );
    System.out.println("str1-str3:"+result);
}

标签:BigDecimal,System,详解,result,compareTo,println,out,字典
来源: https://www.cnblogs.com/HeiDaotu/p/15704946.html