/**
* 比較版本號的大小,前者大則返回一個正數,後者大返回一個負數,相等則返回0
* @param version1
* @param version2
*/
public static int compareVersion(String version1, String version2) throws Exception {
if (version1 == null || version2 == null) {
throw new Exception("compareVersion error:illegal params.");
}
String[] versionArray1 = version1.split("\\.");//注意此處爲正則匹配,不能用.;
String[] versionArray2 = version2.split("\\.");
int idx = 0;
int minLength = Math.min(versionArray1.length, versionArray2.length);//取最小長度值
int diff = 0;
while (idx < minLength
&& (diff = versionArray1[idx].length() - versionArray2[idx].length()) == 0//先比較長度
&& (diff = versionArray1[idx].compareTo(versionArray2[idx])) == 0) {//再比較字符
++idx;
}
//如果已經分出大小,則直接返回,如果未分出大小,則再比較位數,有子版本的爲大;
diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length;
return diff;
}
Java對比APP版本號大小
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.