在开发中,有时候会遇到比较两个文件的版本号,或者比较多个文件的版本号得出最新版本号。 可以用如下代码解决:
/**
* 比较版本号
* @param version1 版本号1
* @param version2 版本号2
* @return <p>0:版本号1 > 版本号2</p>
* <p>1:版本号1 > 版本号2</p>
* <p>-1:版本号1 < 版本号2</p>
*/
private int compareVersion(String version1, String version2) {
if ((version1 == null || version1.length() == 0) && (version2 == null || version2.length() == 0)) {
return 0;
} else if (version1 == null || version1.length() == 0) {
return -1;
} else if (version2 == null || version2.length() == 0) {
return 1;
}
String[] v1 = version1.split("\\.");
String[] v2 = version2.split("\\.");
for (int i = 0; i < v1.length || i < v2.length; ++i) {
int x = 0, y = 0;
if (i < v1.length) {
x = Integer.parseInt(v1[i]);
}
if (i < v2.length) {
y = Integer.parseInt(v2[i]);
}
if (x > y) {
return 1;
}
if (x < y) {
return -1;
}
}
return 0;
}