在开发中,有时候会遇到比较两个文件的版本号,或者比较多个文件的版本号得出最新版本号。 可以用如下代码解决:
1/** 2 * 比较版本号 3 * @param version1 版本号1 4 * @param version2 版本号2 5 * @return <p>0:版本号1 > 版本号2</p> 6 * <p>1:版本号1 > 版本号2</p> 7 * <p>-1:版本号1 < 版本号2</p> 8 */ 9private int compareVersion(String version1, String version2) { 10 11 if ((version1 == null || version1.length() == 0) && (version2 == null || version2.length() == 0)) { 12 return 0; 13 } else if (version1 == null || version1.length() == 0) { 14 return -1; 15 } else if (version2 == null || version2.length() == 0) { 16 return 1; 17 } 18 String[] v1 = version1.split("\\."); 19 String[] v2 = version2.split("\\."); 20 for (int i = 0; i < v1.length || i < v2.length; ++i) { 21 int x = 0, y = 0; 22 if (i < v1.length) { 23 x = Integer.parseInt(v1[i]); 24 } 25 if (i < v2.length) { 26 y = Integer.parseInt(v2[i]); 27 } 28 if (x > y) { 29 return 1; 30 } 31 if (x < y) { 32 return -1; 33 } 34 } 35 return 0; 36}
