文档章节

版本号比较

笙1
 笙1
发布于 2017/04/10 10:08
字数 175
阅读 6
收藏 0
  /** 
 * 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0 
 * @param version1 
 * @param version2 
 */  
public static int compareVersion(String version1, String version2) throws Exception {  
    if (version1 == null || version2 == null) {  
        throw new Exception("compareVersion error:illegal params.");  
    }  
    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;  
}  

 

本文转载自:http://blog.csdn.net/zgs_shmily/article/details/49332471

共有 人打赏支持
上一篇: Cache Aside 策略
下一篇: js文件下载
笙1
粉丝 2
博文 39
码字总数 4058
作品 0
深圳
后端工程师
私信 提问
版本号大小比较算法

版本号大小比较算法 版本号之间比较大小,本质上是比较字符串之间的关系。这里给定两个版本号,你一定能迅速地区分出大小: 想要让计算机程序分辨她们的关系,可以直接使用函数获取返回值,如...

法斗斗
2016/05/27
72
0
版本管理学习

今天在观看孔浩教学视频的时候,学到了关于版本管理的比较基础的知识,于是拿来一下,以备今后复习之用。 外观 这里说的外观指的是软件开发过程中的版本信息,类似于 mysql-connector-java-5...

郭璞
2016/07/25
0
0
判断手机是否支持程序安装(版本判断)

今天早晨起来看了皇马和塞维利亚的比赛,睡不着了,不错,6:2的比分确实是场进球盛宴,而圣卡西在上半场的几次精彩扑救异常关键。好了,闲话少扯,开始正题。 改写了书上的一个小例子,判断手...

迷途d书童
2012/03/30
170
0
【转载】语义化版本 2.0.0

语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下...

RJKD
2015/11/16
0
0
Java中高效的版本号比较

我们都知道客户端或者设备端涉及到版本号的地方就必定会涉及到版本升级问题,这时候就需要我们比较版本号的大小,字符串类型的版本号是怎么比较呢?传统来说我们一般会使用compareTo 或者str...

yao012
2017/04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新鲜出炉,2019最新大厂面试题总汇!

在这个互联网技术快速迭代的时代,每个程序员都知道技术对于职业发展的重要性,那些技术好的程序员不仅薪资高,而且大多数集中在一线互联网企业工作,让人感觉非常高大上的同时,也想去大厂做...

Java干货分享
20分钟前
4
0
一、什么是ActiveMQ

首先我们应该先了解J2EE中的一个重要规范:JMS(The Java Message Service)Java消息服务。而JMS的客户端之间可以通过JMS服务进行异步的消息传输。它主要有两种模型:点对点和发布订阅模型。 ...

watermelon11
26分钟前
1
0
课时17 第三课Spark内部原理剖析与源码阅读(五)

为何spark shuffle比mapreduce shuffle慢? 主要是spark shuffle的shuffle read阶段还不够优秀,它是基于hashmap实现的,shuffle read会把shuffel write阶段已经排序数据给重新转成乱序的,转...

刀锋
43分钟前
1
0
Function函数式接口

Function函数式接口传入一个参数,返回一个值。 然后我们使用这个写个demo看看: 输出: 接口内部还有两个default方法和一个static方法,然后我们先看一下static方法 返回一个始终返回其输入...

woshixin
57分钟前
1
0
开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部