比较版本号的方法

/**
 * 比较版本号
 */

fun checkVersion(v1: String, v2: String): Int {
    val nums1: Array<String> = v1.split("\\.".toRegex()).toTypedArray()
    val nums2: Array<String> = v2.split("\\.".toRegex()).toTypedArray()
    val n1 = nums1.size
    val n2 = nums2.size
    for (i in 0 until Math.max(n1, n2)) {
        val num1 = if (i < n1) nums1[i].toInt() else 0
        val num2 = if (i < n2) nums2[i].toInt() else 0
        if (num1 != num2) {
            return if (num1 < num2) -1 else 1
        }
    }
    return 0

============================================================================================================================

/**
     * 比较当前版本名字
     */
    fun comparisonVersion(): Boolean {
       checkVersionName =  AppUtils.getAppVersionName()
       MobileService(Utils.getApp()).getUrlResult("http://update.allynav.cn/pile/landVersion.html",
            mSuccess = {
                upgradedVersion = it
        }
       )
        when(upgradedVersion.length > 1 && checkVersionName.length > 1){

        }
        if(upgradedVersion.substring(0,1) > checkVersionName.substring(0,1)) {
            Log.e("11111PPPPPPPPP6 ","upgradedVersion" + upgradedVersion.substring(0,1) + checkVersionName.substring(0,1))
            compare = true
        }else if (upgradedVersion.substring(0,1) == checkVersionName.substring(0,1)){
            if( upgradedVersion.substring(2,3) > checkVersionName.substring(2,3)){
                Log.e("11111WWWWWWWW7 ","upgradedVersion" + upgradedVersion.substring(2,3) + checkVersionName.substring(2,3))
                compare = true
            }else if (upgradedVersion.substring(2,3) == checkVersionName.substring(2,3)){
                if( upgradedVersion.substring(4,5) > checkVersionName.substring(4,5)){
                    Log.e("11111LLLLLLL8 ","upgradedVersion" + upgradedVersion.substring(4,5) + checkVersionName.substring(4,5))
                    compare = true
                }else if(upgradedVersion.substring(4,5) == checkVersionName.substring(4,5)){
                    if( upgradedVersion.substring(5,6) > checkVersionName.substring(5,6)){
                        compare = true
                    }
                    Log.e("11111LLLLLLL9 ","upgradedVersion" + upgradedVersion.substring(4,5) + checkVersionName.substring(4,5))
                }
            }
        }
        return  compare
    }

=========================================================================================================================

fun comparisonVersion(): Int? {
   checkVersionName =  AppUtils.getAppVersionName()
    var v1 =  upgradedVersion
    var v2 =  checkVersionName
    if (v1 == null || v1.isEmpty() || v2 == null || v2.isEmpty()) return null
    val regEx = "[^0-9]"
    val p = Pattern.compile(regEx)
    var s1: String = p.matcher(v1).replaceAll("").trim()
    var s2: String = p.matcher(v2).replaceAll("").trim()
    val cha: Int = s1.length - s2.length
    var buffer = StringBuffer()
    var i = 0
    while (i < abs(cha)) {
        buffer.append("0")
        ++i
    }
    if (cha > 0) {
        buffer.insert(0,s2)
        s2 = buffer.toString()
    } else if (cha < 0) {
        buffer.insert(0,s1)
        s1 = buffer.toString()
    }
    val s1Int = s1.toInt()
    val s2Int = s2.toInt()

    return if (s1Int > s2Int) 1
    else 0
}

public int compareVersion(String version1, String version2) {
    int i = 0, j = 0;
    while (i < version1.length() || j < version2.length()) {
        int[] sub1 = getSub(version1, i);
        int[] sub2 = getSub(version2, j);
        if (sub1[0] != sub2[0]) {
            return sub1[0] > sub2[0] ? 1 : -1;
        }
        i = sub1[1];
        j = sub2[1];
    }
    return 0;
}

public int[] getSub(String version, int start) {
    if (start >= version.length()) {
        return new int[]{0, start};
    }
    int num = 0;
    int i = start;
    while (i < version.length() && version.charAt(i) != '.') {
        num = num * 10 + version.charAt(i) - '0';
        i++;
    }
    return new int[]{num, i + 1};
}

=============================================================================================================================

/**

  • 比较版本号
    */
    fun comparisonVersion() {
    checkVersionName = AppUtils.getAppVersionName()
    if (upgradedVersion.substring(0, 1) > checkVersionName.substring(0, 1)) {
    compare = 1
    versionValue.postValue(compare)
    } else if (upgradedVersion.substring(0, 1) == checkVersionName.substring(0, 1)) {
    if (upgradedVersion.substring(2, 3) > checkVersionName.substring(2, 3)) {
    compare = 1
    versionValue.postValue(compare)
    } else if (upgradedVersion.substring(2, 3) == checkVersionName.substring(2, 3)) {
    if (upgradedVersion.substring(4, 5) > checkVersionName.substring(4, 5)) {
    compare = 1
    versionValue.postValue(compare)
    } else if (upgradedVersion.substring(4, 5) == checkVersionName.substring(4, 5)) {
    if (upgradedVersion.substring(5, 6) > checkVersionName.substring(5, 6)) {
    compare = 1
    versionValue.postValue(compare)
    } else {
    compare = 0
    versionValue.postValue(compare)
    }
    } else {
    compare = 0
    versionValue.postValue(compare)
    }
    } else {
    compare = 0
    versionValue.postValue(compare)
    }
    } else
    compare = 0
    versionValue.postValue(compare)
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迪霸LZTXDY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值