All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.codeboy.common.base.util.CBVersionUtil Maven / Gradle / Ivy

package me.codeboy.common.base.util;

/**
 * 版本比较
 * Created by yuedong on 11/21/15.
 */
public class CBVersionUtil {
    /**
     * 本号比较(例如1.10.0与1.2.0版本比较),返回是否有新版本
     *
     * @param oldVersion
     *         旧版本
     * @param newVersion
     *         新版本
     * @return 是否有新的版本存在(是否新版本版本号大于老的版本号)
     */
    public static boolean hasNewVersion(String oldVersion, String newVersion) {
        //版本号有一个不正常就返回false
        if (CBStringUtil.isEmptyOrNull(oldVersion) || CBStringUtil.isEmptyOrNull(newVersion)) {
            return false;
        }

        boolean res = false;
        String[] oldVersionSnippet = oldVersion.split("\\.");
        String[] newVersionSnippet = newVersion.split("\\.");
        int maxComparePosition = Math.min(oldVersionSnippet.length, newVersionSnippet.length);

        int i = 0;
        for (; i < maxComparePosition; i++) {
            int newNumber = Integer.parseInt(newVersionSnippet[i]);
            int oldNumber = Integer.parseInt(oldVersionSnippet[i]);

            if (newNumber == oldNumber) {
                continue;
            }

            if (newNumber > oldNumber) {
                res = true;
                break;
            }

            if (newNumber < oldNumber) {
                res = false;
                break;
            }
        }

        //前面的都相等,比较长度
        if (i == maxComparePosition) {
            res = newVersionSnippet.length > oldVersionSnippet.length;
        }

        return res;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy