/**
* 版本号比较
*
* @param v1
* @param v2
* @return 0代表相等,1代表左边大,-1代表右边大
* Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1
*/
public static int compareVersion(String v1, String v2) {
if (v1.equals(v2)) {
return 0;
}
String[] version1Array = v1.split("[._]");
String[] version2Array = v2.split("[._]");
int index = 0;
int minLen = Math.min(version1Array.length, version2Array.length);
long diff = 0;
while (index < minLen
&& (diff = Long.parseLong(version1Array[index])
- Long.parseLong(version2Array[index])) == 0) {
index++;
}
if (diff == 0) {
for (int i = index; i < version1Array.length; i++) {
if (Long.parseLong(version1Array[i]) > 0) {
return 1;
}
}
for (int i = index; i < version2Array.length; i++) {
if (Long.parseLong(version2Array[i]) > 0) {
return -1;
}
}
return 0;
} else {
return diff > 0 ? 1 : -1;
}
}
举例:
Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1
Utils.compareVersion("1.0.360","1.0.358_20180820090553")=1
Utils.compareVersion("1.0.358.2","1.0.358_20180820090553")=-1
Utils.compareVersion("1.0.0.2","1.0.1")=-1
比较两个版本号大小(工具类)
最新推荐文章于 2022-06-19 10:03:42 发布
本文介绍了一种用于比较软件版本号的实用算法,并提供了详细的实现代码示例。该算法能够准确判断两个版本号之间的大小关系,适用于多种场景。
2万+

被折叠的 条评论
为什么被折叠?



