版本号比较方法

该代码段提供了一个私有方法compareVersion,用于比较两个软件版本号。它通过将版本号拆分为数字数组并逐项比较来确定版本大小关系,返回值表示版本间的相对大小关系。如果版本号相等返回0,左边大返回1,右边大返回-1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
     * 版本号比较
     *
     * @param userVersion
     * @param supportUpgradeVersion
     * @return 0代表相等,1代表左边大,-1代表右边大
     * Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1
     */
    private int compareVersion(String userVersion, String supportUpgradeVersion) {
        if (userVersion.equals(supportUpgradeVersion)) {
            return 0;
        }
        String[] version1Array = userVersion.split("[._]");
        String[] version2Array = supportUpgradeVersion.split("[._]");
        int index = 0;
        int minLen = Math.min(version1Array.length, version2Array.length);
        long diff = 0;

        while (index < minLen
                && (diff = Long.parseLong(version1Array[index])
                - Long.parseLong(version2Array[index])) == 0) {
            index++;
        }
        if (diff == 0) {
            for (int i = index; i < version1Array.length; i++) {
                if (Long.parseLong(version1Array[i]) > 0) {
                    return 1;
                }
            }

            for (int i = index; i < version2Array.length; i++) {
                if (Long.parseLong(version2Array[i]) > 0) {
                    return -1;
                }
            }
            return 0;
        } else {
            return diff > 0 ? 1 : -1;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值