字典比较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("不相等");
}
}
结果:
如果不想转为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("不相等");
}
}
结果:
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