版本比較工具類(通用)
阿新 • • 發佈:2019-02-01
在java後臺開發中,經常會遇到某一個版本以後才要上新特性,此時就可以將版本比較工具類派上用場了。
public class VersionCompare { /** * 判斷版本1是否在版本2之後 * @param version1 * @param version2 * @return */ public static boolean afterVersion(String version1, String version2){ if (StringUtils.isEmpty(version1) || StringUtils.isEmpty(version2)) { return false; } 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) {//再比較字元 ++idx; } //如果已經分出大小,則直接返回,如果未分出大小,則再比較位數,有子版本的為大; diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length; return diff>0; } }