/**
* 版本号比较
* <p>
* 比较传入的两个字符串版本号 如:v1.0.0.9
* newVersion <= currVersion场合均是false
* @param newVersion 最新版本号
* @param currVersion 当前版本号
* @return
* @throws Exception
*/
private static boolean compareVersion(String newVersion, String currVersion)
throws Exception {
if (newVersion.equalsIgnoreCase(currVersion)) {
return false;
}
String[] news = newVersion.substring(1).split("\\.");
String[] currs = currVersion.substring(1).split("\\.");
if (news.length != currs.length) {
throw new Exception("传入的两个版本号格式不正或者不一致。");
}
boolean flag = false;
for (int i = 0; i < news.length; i++) {
int newI = Integer.parseInt(news[i]);
int currsI = Integer.parseInt(currs[i]);
if (newI - currsI < 0) {
return false;
} else {
if (i == 0 && newI - currsI > 0) {
return true;
}
if (flag) {
if (newI - currsI == 0) {
continue;
}
if (newI - currsI < 0) {
return false;
} else {
return true;
}
}
flag = true;
}
}
return true;
}
* 版本号比较
* <p>
* 比较传入的两个字符串版本号 如:v1.0.0.9
* newVersion <= currVersion场合均是false
* @param newVersion 最新版本号
* @param currVersion 当前版本号
* @return
* @throws Exception
*/
private static boolean compareVersion(String newVersion, String currVersion)
throws Exception {
if (newVersion.equalsIgnoreCase(currVersion)) {
return false;
}
String[] news = newVersion.substring(1).split("\\.");
String[] currs = currVersion.substring(1).split("\\.");
if (news.length != currs.length) {
throw new Exception("传入的两个版本号格式不正或者不一致。");
}
boolean flag = false;
for (int i = 0; i < news.length; i++) {
int newI = Integer.parseInt(news[i]);
int currsI = Integer.parseInt(currs[i]);
if (newI - currsI < 0) {
return false;
} else {
if (i == 0 && newI - currsI > 0) {
return true;
}
if (flag) {
if (newI - currsI == 0) {
continue;
}
if (newI - currsI < 0) {
return false;
} else {
return true;
}
}
flag = true;
}
}
return true;
}