實現**如下:
/**
* * 1、前者大則返回乙個正數
* 2、後者大返回乙個負數
* 3、相等則返回0
** @return int
*/if (version1 == null || version2 == null)
// 注意此處為正則匹配,不能用.
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)
// 如果已經分出大小,則直接返回,如果未分出大小,則再比較位數,有子版本的為大
diff = (diff != 0) ? diff : versionarray1.length - versionarray2.length;
return diff;
}
已自測通過 Java實現比較版本號
涉及到客戶端的系統中經常需要用到比較版本號的功能,但是比較版本號又不能完全按照字串比較的方式去用compareto之類的方法 這就需要我們總結版本號的通用規則,設計乙個比較演算法並封裝成通用方法來使用 通常版本號如 1.3.20.8,6.82.20160101,8.5a 8.5c等 通用規則就是,先...
Java實現比較版本號
原文 涉及到客戶端的系統中經常需要用到比較版本號的功能,但是比較版本號又不能完全按照字串比較的方式去用compareto之類的方法 這就需要我們總結版本號的通用規則,設計乙個比較演算法並封裝成通用方法來使用 通常版本號如 1.3.20.8,6.82.20160101,8.5a 8.5c等 通用規則就...
java版本號比較
public static int versioncompareto string version1,string version2 for int i 0 i version2array.length i int size version1list.size version2list.size v...