* compareTo 一定不要用 例如在比较10.0.1 和 9.8.3是就会显示后面的数大;
下面这个工具类可以比较大小
package com.icbc.tgmgmt.app; /** * * version1 目标版本 * version2 源版本 * modify by user on 2018-5-21 */ public class CompareVersion { public static int compareVersion(String version1, String version2) { if (version1.equals(version2)) { return 0; } String[] version1Array = version1.split("\."); String[] version2Array = version2.split("\."); int index = 0; //获取最小长度值 int minLen = Math.min(version1Array.length, version2Array.length); int diff = 0; //循环判断每位的大小 while (index < minLen && (diff = Integer.parseInt(version1Array[index]) - Integer.parseInt(version2Array[index])) == 0) { index++; } if (diff == 0) { //如果位数不一致,比较多余位数 for (int i = index; i < version1Array.length; i++) { if (Integer.parseInt(version1Array[i]) > 0) { return 1; } } for (int i = index; i < version2Array.length; i++) { if (Integer.parseInt(version2Array[i]) > 0) { return -1; } } return 0; } else { return diff > 0 ? 1 : -1; } } }
第一个参数大返回正数,第二个参数大返回负数,一样返回0;