首页 > 编程语言 >Java 比较版本号

Java 比较版本号

时间:2024-07-29 10:18:58浏览次数:16  
标签:Java version1 version2 版本号 length return null 比较

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

/**
 * 比较版本号
 * @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;
}

标签:Java,version1,version2,版本号,length,return,null,比较
From: https://www.cnblogs.com/skysailstar/p/18329485

相关文章

  • Java8 Stream操作流10条常用方法
    1.filter过滤满足条件的元素2.mapmap方法将每个元素转换成另一个类型,并返回新的流3.flatMap与map类似,可以用来扁平化多层嵌套4.distinct去除流中的重复元素5.sorted对流中的元素进行排序6.limit可以限制流中的元素数量7.skip可以跳过流中的前n个元素8.reduce......
  • VO、DTO、Entity:Java 应用中的数据对象详解
    在Java应用程序中,特别是在基于微服务架构的应用中,数据对象(DataObjects)扮演着非常重要的角色。它们不仅有助于组织和传输数据,还能确保应用程序各部分之间的解耦。本文将深入探讨VO(ViewObject)、DTO(DataTransferObject)和Entity之间的区别,并讨论它们在实际项目中的应......
  • 计算机毕业设计项目推荐,基于Echarts的高校就业数据可视化管理系统 81461(开题答辩+程序
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业管理进行研究分析,然后开发设计出高校就业数据可视化管理系统......
  • JAVA跨平台的概念
    JAVA跨平台的概念Java跨平台性指的是用Java编写的应用程序可以在不同的操作系统(如Windows、Linux、MacOS等)上运行,而无需针对每个平台进行特定的修改或重新编译。JAVA跨平台的实现原理1.编译过程Java源代码(.java文件)首先通过Java编译器(javac)编译成一种中间代码,称为字节码(.clas......
  • java初识-----JDK,JRE和JVM
    JDK,JRE和JVMJDK即JavaDevelopmentKit是Java开发工具包的缩写。它是一套用于开发Java应用程序的软件包,包含了Java的运行环境(JRE)、编译器(javac)和调试器(jdb)等众多工具。JDK是Java开发的核心,无论是编写Java程序还是运行Java应用,都离不开JDK的支持。对于Java开发者来说,安装......
  • java初识---JDK的安装配置
    JDK的安装确定操作系统在开始安装JDK之前,首先需要确定自己的计算机操作系统类型,如Windows、macOS或Linux。因为不同操作系统的JDK安装包和安装步骤可能有所不同。检查系统要求确保计算机满足JDK安装所需的最低系统要求,包括处理器、内存和磁盘空间等。这些要求通常可以在JDK......
  • Java跨平台原理
    Java跨平台原理一、编译过程源代码编译:Java源代码(.java文件)首先被编译成字节码(.class文件)。这一过程是通过Java编译器(javac)完成的。平台无关性:由于字节码不依赖于任何特定的硬件或操作系统,因此它是Java实现跨平台的基础。这意味着,无论在何种操作系统上编译Java源代码,生成的......
  • Java编译和运行的命令
    Java编译和运行的命令Java编译命令(javac)是Java开发工具包(JDK)提供的一个工具,用于将Java源代码(.java文件)编译成Java字节码(.class文件),这些字节码文件可以在Java虚拟机(JVM)上运行。基本语法:javac[options]source_filesjavac:表示Java编译器命令。[options]:表示可选的编......
  • Java-API基础 02
    1.正则表达式:用于描述字符串的内容格式,使用它通常用于匹配一个字符串是否符合格式要求正则表达式的语法:1.[]:表示一个字符,该字符可以是[]中指定的内容例如:[abc]:这个字符可以是a或b或c[a-z]:表示任意一个小写字母[a-zA-Z]:表示任意一个字母[a-zA-Z0-......
  • Java-API基础 03
    1.什么是集合:集合和数组一样,可以保存一组数据,并且提供了操作数组元素的相关方法,使用用更加方便2.集合框架中的相关接口:java.util.Collection接口:是所有集合的顶级接口,封装了所有集合所共有的方法,下面有很多实现类,因此我们可以有更多的数据结构来选择。Collection接口下......