zoukankan      html  css  js  c++  java
  • 软件版本号比较 java工具类

    这段程序主要用于比较sdk的版本号,例如 8.9.1 和8.9.0,8.9.1和8.7的比较。

    import org.apache.commons.lang3.StringUtils;
    
    import java.util.regex.Pattern;
    
    public class NumUtils {
    
       /**
         * @description 比较SDK版本号
         * @param version1
         * @param version2
         * @return
         */
        public static int compareVersion(String version1, String version2){
            if (version1 == null || version2 == null) {
            }
            version1 = version1.replaceAll("([^(\d|\.)])", "");
            version2 = version2.replaceAll("([^(\d|\.)])", "");
            String[] versionArray1 = version1.split("\.");//注意此处为正则匹配, 不能用.;
            String[] versionArray2 = version2.split("\.");
            int idx = 0;
            int minLength = Math.min(versionArray1.length, versionArray2.length);//取最小长度值
            int diff = 0;
            while (idx < minLength
                    && (diff = versionArray1[idx].length() - versionArray2[idx].length()) == 0//先比较长度
                    && (diff = versionArray1[idx].compareTo(versionArray2[idx])) == 0) {//再比较字符
                ++idx;
            }
            //如果已经分出大小,则直接返回,如果未分出大小,则再比较位数,有子版本的为大;
            diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length;
            return diff;
        }
        public static void main(String[] args) {  
         System.out.println(compareVersion("6.0.0".replaceAll("([^(\d|\.)])", ""), "6.0.0") ==0);  //true
    System.out.println(compareVersion("5.6.1".replaceAll("([^(\d|\.)])", ""), "5.6.0") > 0); //true
    System.out.println(compareVersion("5.6.1".replaceAll("([^(\d|\.)])", ""), "5.6.2") > 0); //false
     } }
  • 相关阅读:
    去掉字符串不需要的HTML标记(正则表达式)
    js 注册命名空间(registerNamespace )
    动态DNS负载均衡
    Juery 动态移除js、动态添加js
    UpdatePanel 后台注册脚本失效
    FCKeditor的fckconfig.js配置 中文说明
    C# world模板中写信息
    Jquery 操作table行增减
    用jQuery解决跨域访问
    Request.ServerVariables(HTTP_REFERER) 获取方式注意
  • 原文地址:https://www.cnblogs.com/Allen-win/p/10526357.html
Copyright © 2011-2022 走看看