public class VersionCodeUtil {
/**
* @author: tingzhang7
* @date: 2018-6-20 上午9:16:33
* @Description: 比较版本号大小
*/
public static int check(String version1, String version2) {
String[] versionArray1 = version1.split("\\.");
for (int i = 0; i < versionArray1.length; i++) {
// 如果位数只有一位则自动补零(防止出现一个是04,一个是5)
// (直接以长度比较)
if (versionArray1[i].length() == 1) {
versionArray1[i] = "0" + versionArray1[i];
}
}
String[] versionArray2 = version2.split("\\.");
for (int i = 0; i < versionArray2.length; i++) {
// 如果位数只有一位则自动补零
if (versionArray2[i].length() == 1) {
versionArray2[i] = "0" + versionArray2[i];
}
}
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;
}
}
比较版本号大小
猜你喜欢
转载自blog.csdn.net/w_t_y_y/article/details/80742118
今日推荐
周排行