字典比较compareTo() 方法详解

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

首先我们看compareTo的方法

  • public int compareTo(String anotherString)
    • anotherString 代表被对比的参数
  • public int compareTo(Object o)
    • o代表对象

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

  • 如果参数字符串等于此字符串,则返回值 0
  • 如果此字符串小于字符串参数,则返回一个小于 0 的值
  • 如果此字符串大于字符串参数,则返回一个大于 0 的值

实例

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("不相等");
    }
}

结果

202112141500091

如果不想转为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("不相等");
    }
}

结果

202112141500091

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);
}
```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);
}
posted @ 2021-12-18 14:16  HeiDaotu  阅读(287)  评论(0编辑  收藏  举报