Java中 compareTo() 用法

文章介绍了在Java中,int和double类型直接使用><=进行比较,而Integer、Double、BigDecimal和Date类型则使用compareTo方法进行比较,返回值分别为1、0和-1表示大小关系。对于String类型,compareTo方法基于ASCII值进行比较,考虑了字符串长度和字符顺序。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值