1、int、double无法使用compareTo方法,可以直接用 ><= 来比较
2、用来比较Integer、Double、BigDecimal、Date类型的值
前大于后 = 1,
前等于后 = 0,
前小于后 = -1
3、 用来比较String的值,比较的是ASCII值,ASCII 表 | 菜鸟教程
4、测试代码
/** * int、double无法使用compareTo方法,可以直接比较 */ //int int1 = 2; //int int2 = 3; //System.err.println(int1.compareTo(int2)); //System.err.println(int1 > int2); /** * 比较Integer、Double、BigDecimal、Date类型的值 * 前大于后 = 1 * 前等于后 = 0 * 前小于后 = -1 */ //比较Integer的值 Integer i1 = 2; Integer i2 = 3; System.out.println(i1.compareTo(i2)); //结果为-1 //比较Double的值 Double d1 = 1.0; Double d2 = 2.3; System.out.println(d1.compareTo(d2)); //结果为-1 //比较BigDecimal的值 BigDecimal integralValueSum = new BigDecimal("10"); BigDecimal grpPermBigDecimal = new BigDecimal("10"); System.out.println(integralValueSum.compareTo(grpPermBigDecimal)); //结果为0 //比较Date的值 Date date1 = DateTimeUtil.strToDate("2023-05-06","yyyy-MM-dd"); Date date2 = DateTimeUtil.strToDate("21023-08-06","yyyy-MM-dd"); System.out.println(date1.compareTo(date2)); //结果为-1 /** * 比较String的值 */ //1、如果两个字符的长度一样,则比较ASCII值 String s1 = "A"; //A:ASCII值65 String s2 = "a"; //a:ASCII值97 System.out.println(s1.compareTo(s2)); //结果为-32 //2、如果如果两个字符的长度一样,则比较第一个不同的位置对应自付的ASCII值 String ss1 = "bcvAert"; //A:ASCII值65 String ss2 = "bcvaoiu"; //a:ASCII值97 System.out.println(ss1.compareTo(ss2)); //结果为-32 //3、如果两个字符的长度不一样,则会返回两个字符串的长度差值。 String sss1 = "Abcd"; String sss2 = "Abcdtttttttt"; System.out.println(sss1.compareTo(sss2)); //结果为-8 //4、如果想使用compareTo()来比较字符串类型的日期也是可以的,但是长度必须一致,由于是String类型,比较的依然是第一个不同的字符的ASCII值。 String ssss1 = "2023-05-05"; String ssss2 = "2023-12-05"; System.out.println(ssss1.compareTo(ssss2));//结果为-1