之前一直忙于解决bug,没有时间更新博客(主要是自己的自律性需要提高)
最近考虑总结下自己的学习以及遇到的问题吧
问题:比较android版本大小,并且不用内部的代码,要考虑详细:
需要用的程序如下:
split--将几点几啊的版本的点去掉
Integer.parseInt--将可分析的字符串转换为整数
综上代码如下:
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;
}
}
综上完成比较