Android 版本号对比

来源:互联网 发布:北京蓝鲸网络官网 编辑:程序博客网 时间:2024/05/19 01:09

import android.util.Log;

/**
* 版本号对比,如 1.2.1 2.1.1
* Created by Administrator on 2017/9/7.
*/

public class CompareVersion {    public static int compareVersion(String version1, String version2) {        //0代表相等,1代表version1大于version2 , -1代表version1小于version2        if (version1.equals(version2)) {            return 0;        }        String[] version1Array = version1.split("\\.");        String[] version2Array = version2.split("\\.");        Log.d("HomePageActivity", "version1Array=="+version1Array.length);        Log.d("HomePageActivity", "version2Array=="+version2Array.length);        int index = 0;        // 获取最小长度值        int minLen = Math.min(version1Array.length, version2Array.length);        int diff = 0;        // 循环判断每位的大小        Log.d("HomePageActivity", "verTag2=2222="+version1Array[index]);        while (index < minLen                && (diff = Integer.parseInt(version1Array[index])                - Integer.parseInt(version2Array[index])) == 0) {            index++;        }        if (diff == 0) {            // 如果位数不一致,比较多余位数            for (int i = index; i < version1Array.length; i++) {                if (Integer.parseInt(version1Array[i]) > 0) {                    return 1;                }            }            for (int i = index; i < version2Array.length; i++) {                if (Integer.parseInt(version2Array[i]) > 0) {                    return -1;                }            }            return 0;        } else {            return diff > 0 ? 1 : -1;        }    }}