Java代码实现版本号比较
针对以上命名的规则,我写了一个版本号比较工具. /** * 版本号比较 * * @author xuyi * @Time 2016年12月3日 下午3:13:14 * @类名 VersionCompare * @功能描述: * @春风十里不如你 * @备注: */ public class VersionCompare { /** * 这个方法应该算是比较完善的. * * @param firstVersion * @param secondVersion * @return */ public static VersionEnum compare(String firstVersion, String secondVersion) { if (firstVersion.equals(secondVersion)) return VersionEnum.EQUAL; if (moreLaterVersion(firstVersion, secondVersion)) return VersionEnum.HIGHER; return VersionEnum.LOWER; } /** * 判断两个版本号是否为同一个版本号 * * @param firstVersion * @param secondVersion * @return */ public static boolean isEqualsVersion(String firstVersion, String secondVersion) { return firstVersion.equals(secondVersion); } /** * 判断第一个版本号是否比后一个版本号更高 * * @param firstVersion * @param secondVersion * @return */ public static boolean moreLaterVersion(String firstVersion, String secondVersion) { //使用split方法时,注意一点,以"."分隔时要转义,因为使用的是正则处理的. String[] firstVersions = firstVersion.replace("V", "").split("\\."); String[] secondVersions = secondVersion.replace("V", "").split("\\."); int length = firstVersions.length; for (int i = 0; i < length; i++) { boolean later = Integer.compare(Integer.valueOf(firstVersions[i]), Integer.valueOf(secondVersions[i])) > 0; if (later) { return true; } } return false; } }