compareTo()的用法
a.compareTo (b)
从函数本身出发:
- 结果大于0(>0)----------a>b
- 结果小于0(<0)----------a<b
- 结果等于0(=0)----------a=b
从数据类型出发
- String比较:普通类和数字类(数字类也按照普通类比较)
//普通字符先比较ASCII码,在比较
String s1 = "abc";
String s2 = "abd";
String s3 = "abcdfg";
String s4 = "abcd";
String s5="0";
String s6="0.1";
// -1 (c的ASCII码为99,d的ASCII为100;99-100=-1)
System.out.println( s1.compareTo(s2) );
// -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s3) );
// -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s4) );
// -2 (前面相等,s5长度小2)
System.out.println( s5.compareTo(s6) );
/*两个数字字符串来可以做两个数的比较吗?
*如上 s5与s6的比较看起来没毛病
*下面的例子则不是0和0.00在做数字比较应该为相等
*所以说两个数字字符串来可以做两个数的比较
*/
String s5="0";
String s6="0.00";
// -3 (前面相等,s5长度小3)
System.out.println( s5.compareTo(s6));
-
BigDecimal比较
直接比较两个BigDecimal,会报语法错误!
BigDecimal a = new BigDecimal(0.1);
BigDecimal b = new BigDecimal(0.2);
int c = a.compareTo(b); // -1
/*
c=1表示b1大于b2
c=0表示b1等于b2
c=-1表示b1小于b2
*/
BigDecimal可以做到让两个数字字符进行比较
//结果为false
BigDecimal max =new BigDecimal("0.1");
BigDecimal min =new BigDecimal("0.001");
System.out.println(min.compareTo(max)>0);
//结果为true
BigDecimal a =new BigDecimal("0");
BigDecimal b =new BigDecimal("0.0");
System.out.println(a.compareTo(b)==0);