java实现判定新旧版本号
废话不多说,直接上代码
1 /** 2 * 判断是否为最新版本方法 将版本号根据.切分为int数组 比较 3 * 4 * @param localVersion 本地版本号 5 * @param onlineVersion 线上版本号 6 * @return 是否为新版本 7 * @throws IllegalArgumentException argument may not be null ! 8 */ 9 public static boolean isNewVersion(String localVersion, String onlineVersion) { 10 if (localVersion == null || onlineVersion == null) { 11 throw new IllegalArgumentException("argument may not be null !"); 12 } 13 if (localVersion.equals(onlineVersion)) { 14 return false; 15 } 16 //过滤非数字和非字符点 17 String[] localArray = localVersion.replaceAll("[^0-9.]", "").split("[.]"); 18 String[] onlineArray = onlineVersion.replaceAll("[^0-9.]", "").split("[.]"); 19 int length = localArray.length < onlineArray.length ? localArray.length : onlineArray.length;//取长度较短的版本 20 //以长度较短的版本为基点,逐个判断大小 21 for (int i = 0; i < length; i++) { 22 if (Integer.parseInt(onlineArray[i]) > Integer.parseInt(localArray[i])) { 23 return true; 24 } else if (Integer.parseInt(onlineArray[i]) < Integer.parseInt(localArray[i])) { 25 return false; 26 } 27 // 相等 比较下一组值 28 } 29 //长度较长的判断 30 //比较最后差异组数值 31 if (localArray.length < onlineArray.length) {//旧版本长度短于新版本 32 return Integer.parseInt(onlineArray[onlineArray.length - 1]) > 0; 33 } else if (localArray.length > onlineArray.length) {//旧版本长度长于新版本 34 return Integer.parseInt(onlineArray[onlineArray.length - 1]) < 0;//旧版本 35 } 36 return false; 37 }