Java 比较版本号

天航星
• 阅读 500

在开发中,有时候会遇到比较两个文件的版本号,或者比较多个文件的版本号得出最新版本号。 可以用如下代码解决:

/**
 * 比较版本号
 * @param version1 版本号1
 * @param version2 版本号2
 * @return <p>0:版本号1 > 版本号2</p>
 *         <p>1:版本号1 > 版本号2</p>
 *         <p>-1:版本号1 < 版本号2</p>
 */
private int compareVersion(String version1, String version2) {

    if ((version1 == null || version1.length() == 0) && (version2 == null || version2.length() == 0)) {
        return 0;
    } else if (version1 == null || version1.length() == 0) {
        return -1;
    } else if (version2 == null || version2.length() == 0) {
        return 1;
    }
    String[] v1 = version1.split("\\.");
    String[] v2 = version2.split("\\.");
    for (int i = 0; i < v1.length || i < v2.length; ++i) {
        int x = 0, y = 0;
        if (i < v1.length) {
            x = Integer.parseInt(v1[i]);
        }
        if (i < v2.length) {
            y = Integer.parseInt(v2[i]);
        }
        if (x > y) {
            return 1;
        }
        if (x < y) {
            return -1;
        }
    }
    return 0;
}
点赞
收藏
评论区
推荐文章
冴羽 冴羽
2年前
聊聊 npm 的语义化版本(Semver)
前言现在我们要开发一个项目,我们都知道为了方便项目管理,要写一个版本号,那开发的时候初始的版本号是多少呢?是1.0.0还是0.0.1开始?如果一个版本号为X.Y.Z,什么时候是X应该加1,什么时候Y应该加1,什么时候Z应该加1,加1遵循十进制吗?比如1.0.9的下一个版本应该是1.1.0吗?我们经常看到一些项目的版
Wesley13 Wesley13
2年前
java实现的版本号比较
/实现版本号比较支持任意数字字母版本号比较,这里实现的是用点号(.)作为分隔符支持任意长度的小版本号比较/publicstaticintcompareVersion(Stringver1,Stringver2){if(ver1null&&
Wesley13 Wesley13
2年前
CDH用户及开发者应当关注的CDP组件变化
在Cloudera和Hortonworks合并后,Cloudera公司推出了新一代的数据平台产品CDPDataCenter(以下简称为CDP),在2019年11月30日已经正式GA。CDP的版本号延续了之前CDH的版本号,从7.0开始,目前最新的版本号为7.0.3.0。那么CDP对比之前的ClouderaEnterpriseDataHub(
Stella981 Stella981
2年前
MSVC 版本号对应
MSVC版本号对应MSVC14.0_MSC_VER1900(VisualStudio2015)MSVC12.0_MSC_VER1800(VisualStudio2013)MSVC11.0_MSC_VER1700(VisualStudio2
Wesley13 Wesley13
2年前
flume高并发优化——(15)中间件版本升级
在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊!名称老版本号新版本号jdk1.7.0\_251.8.0kafka2.100.8.0.12.100.10.2.1flume1.6.01.7.0zookeeper
Wesley13 Wesley13
2年前
POI可用版本号
POI版本不对会导致各种运行时问题,下面是一个可用版本组合<dependency<groupIdorg.apache.poi</groupId<artifactIdpoiscratchpad</artifactId<version3.9</version<
Stella981 Stella981
2年前
Liunx版本号码编排惯例
1、内核版本号不代表操作系统整体版本;Linux的内核,以及每一个应用程序、元件、库或者是发行版中的软件包都有自身的版本号。例如你使用的gcc版本号码是2.7.2.3,内核可能是2.2。在安装某个发行版时,所有这些过程得到了简化,因为发行版中包括的每一个软件包都是最新的,例如:RedHat、easyLinux。2、稳定版和开发版任何时候内核都以两
Stella981 Stella981
2年前
Jenkins Pipeline shell脚本用svn_revision当做系统版本号
1. 使用dir命令,进入发布目录,版本号所在文件夹。2. 使用sed命令 修改替换版本号,这里使用vvvv作为要替换的版本号。3. 最后一步可以不加。只是方便查看效果。stage("修改web系统版本号"){steps{dir('src/Hkk.Web/bi
Stella981 Stella981
2年前
Dubbo多版本
  当服务提供者提供的服务接口出现不兼容升级时,可以设置版本号,使用多个版本号(version)进行过渡。  1)、服务提供者配置文件1<dubbo:serviceref"userService"interface"cn.coreqi.service.UserService"version"1.0.0"/2
郑天寿 郑天寿
10个月前
如何获取当前使用的sdk的版本号
1,获取当前sdk的版本号调用RongIM.init()(或者RongIMClient.init())后studiologcat过滤init重启应用,执行了init后,会有版本号打印2,5.2.1版本之后,根据这个方法来获取版本号publicabstrac
天航星
天航星
Lv1
天河有尽后为涯 星海无边前作岸
文章
8
粉丝
0
获赞
0