还是看着java compareTo() 内部的方法来实现的 /** * @auhor hl * @dataCompareVersionon 11:39 * 描述 * 作者 洪亮 admin */ public class CompareVersion { /** * 版本号比较 * compareTo()方法返回值为int类型,就是比较两个值,如:x.compareTo(y)。如果前者大于后者,返回1,前者等于后者则返回0,前者小于后者则返回-1 * @param s1 * @param s2 * @return 范围可以是"2.20.", "2.10.0" ,".20","2.10.0",2.1.3 ,3.7.5,10.2.0 */ public static int compareVersion(String s1, String s2) { String[] s1Split = s1.split("\\.", -1); String[] s2Split = s2.split("\\.", -1); int len1 = s1Split.length; int len2 = s2Split.length; int lim = Math.min(len1, len2); int i = 0; while (i < lim) { int c1 = "".equals(s1Split[i]) ? 0 : Integer.parseInt(s1Split[i]); int c2 = "".equals(s2Split[i]) ? 0 : Integer.parseInt(s2Split[i]); if (c1 != c2) { return c1 - c2; } i++; } return len1 - len2; } }