美文网首页
版本比较算法

版本比较算法

作者: f98f54a4d3cd | 来源:发表于2018-03-22 17:46 被阅读0次
public static void main(String[] args) {
    // TODO Auto-generated method stub
    String v1 = "6.6.3.5.6";
    String v2 = "6.6.3.5a";

    long t1=System.currentTimeMillis();
    int result=compareVersionStr(v1, v2);
    System.out.println("time costs:"+(System.currentTimeMillis()-t1)+"  result:"+result);

}

public static int compareVersionStr(String v1, String v2) {
    if (v1 == null || v2 == null) {
        return COMPARE_VERSION_EXCEPTION;
    }
    v1 = v1.trim();
    v2 = v2.trim();
    boolean empty1 = v1.length() == 0;
    boolean empty2 = v2.length() == 0;
    if (!empty1 && empty2) {
        return COMPARE_VERSION_GREATER;
    }
    if (empty1 && !empty2) {
        return COMPARE_VERSION_SMALLER;
    }
    if (empty1 && empty2) {
        return COMPARE_VERSION_EQUAL;
    }

    if (!v1.contains(".")) {
        v1 = v1 + ".";
    }
    if (!v2.contains(".")) {
        v2 = v2 + ".";
    }
    int firstIndex1 = v1.indexOf(".");
    int firstIndex2 = v2.indexOf(".");
    System.out.println("firstIndex1:" + firstIndex1 + "   firstIndex2:"
            + firstIndex2);
    String firstVer1 = v1.substring(0, firstIndex1);
    String firstVer2 = v2.substring(0, firstIndex2);
    System.out.println("firstVer1:" + firstVer1 + "   firstVer2:"
            + firstVer2);

    int a = 0, b = 0;
    for (int i = 0; i < firstVer1.length(); i++) {
        a += firstVer1.charAt(i);
    }
    for (int i = 0; i < firstVer2.length(); i++) {
        b += firstVer2.charAt(i);
    }

    if (a > b) {
        return COMPARE_VERSION_GREATER;
    } else if (a < b) {
        return COMPARE_VERSION_SMALLER;
    } else {
        String subVer1 = v1.substring(firstIndex1 + 1, v1.length());
        String subVer2 = v2.substring(firstIndex2 + 1, v2.length());
        System.out.println("subVer1:" + subVer1 + "   subVer2:" + subVer2);
        return compareVersionStr(subVer1, subVer2);
    }
}

相关文章

  • 版本比较算法

  • 版本号大小比较算法

    版本号之间比较大小,本质上是比较字符串之间的关系。这里给定两个版本号,你一定能迅速地区分出大小: 想要让计算机程序...

  • 【iOS】比较版本号大小算法

    一句话代码搞定,复制即用,做的相对完善,不完善的地方希望大家砍我改正哈! 当然你可以利用字符串截取法来计算,不过那...

  • 版本比较

    描述 牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和v...

  • 算法比较

    排序算法平均时间复杂度冒泡排序O(n²)选择排序O(n²)插入排序O(n²)希尔排序O(n1.5)快速排序O(N*...

  • 【ARTS打卡计划】第一周

    A | Algorithm:每周至少做一个Leetcode算法题 比较两个版本号 题目: Compare two ...

  • 冒泡排序

    算法说明 每次都从数组的第一个数开始比较,每次比较一位 每遇到比自己小的值,就替换两者位置 实现 PHP版本 JS版本

  • HTTP 版本比较

    HTTP/1.1 新增: 默认为持久连接; 新增范围请求; 新增虚拟主机; 多了一些缓存处理字段; 多了一些状态码...

  • js 版本比较

    如果当前版本大于等于需求版本则返回true,如果当前版本小于需求版本则返回false https://blog.c...

  • JS 版本比较

网友评论

      本文标题:版本比较算法

      本文链接:https://www.haomeiwen.com/subject/sexzqftx.html