/** * 思想比较简单,两个版本比较,先比较下标一样的位置的值,从头开始比较,谁大就是哪个版本大, * 如果比较完了,还不能分辨哪个版本大,只需要判断较长的数组,如果有数字大于零的,就是谁大, * 否则就是一样大 */ public class Test2 { public static void main(String[] args) { Test2 test2 = new Test2(); Integer maxVersion = test2.getMaxVersion("2.1.1.24.0", "2.2.1"); if (maxVersion>0){ System.out.println("第一个版本大"); } else if (maxVersion==0) { System.out.println( "版本一样的"); }else { System.out.println("第二个版本大"); } } public Integer getMaxVersion(String s1,String s2){ if (s1.equals(s2)){ return 0; } //这里做分割的时候一定要注意带上中括号 String[] split1 = s1.split("[.]"); String[] split2 = s2.split("[.]"); int diff = 0; int minLength = Math.min(split1.length,split2.length); int index = 0; while (index<minLength && (diff = (int) (Long.parseLong(split1[index])-Long.parseLong(split2[index])))==0){ index++; } if (diff==0){ for (int i = index; index <split1.length ; i++) { if (Long.parseLong(split1[index])>0){ return 1; } } for (int i = index; i <split2.length ; i++) { if (Long.parseLong(split2[index])>0){ return -1; } } return 0; }else { return diff > 0 ? 1 : -1; } } }