可用于版本是否强制更新时,判断版本号大小 /** * @author gaoyankang 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0 * @param version1 * version2 * @return int */private
/** * @author gaoyankang 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0 * @param version1 * version2 * @return int */ private int compareVersion(String version1, String version2) throws Exception { if (version1 == null || version2 == null) { throw new Exception("compareVersion error:比较版本号参数错误"); } 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; }