public static int compareAndroidVersion(String version1, String version2) {
if (version1.equals(version2)) {
return 0;
}
String[] version1Number = version1.split("\\.");
String[] version2Number = version2.split("\\.");
int index = 0;
int minLen = Math.min(version1Number.length, version2Number.length);
int diff = 0;
while (index < minLen && (diff = Integer.parseInt(version1Number[index]) - Integer.parseInt(version2Number[index])) == 0) {
index++;
}
if (diff == 0) { //位数不一致,哪个多哪个就是大的
for (int i = index; i < version1Number.length; i++) {
if (Integer.parseInt(version1Number[i]) > 0) {
return 1;
}
}
for (int i = index; i < version2Number.length; i++) {
if (Integer.parseInt(version2Number[i]) > 0) {
return -1;
}
}
return 0;
} else { //位数相等的直接比较
return diff > 0 ? 1 : -1;
}
}
网友评论