Java 比较两个版本号的大小 (通用)
时间:2020-05-21
本文章向大家介绍Java 比较两个版本号的大小 (通用),主要包括Java 比较两个版本号的大小 (通用)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/** * 版本号比较 * * @param v1 * @param v2 * @return 0代表相等,1代表左边大,-1代表右边大 * Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1 */ public static int compareVersion(String v1, String v2) { if (v1.equals(v2)) { return 0; } String[] version1Array = v1.split("[._]"); String[] version2Array = v2.split("[._]"); int index = 0; int minLen = Math.min(version1Array.length, version2Array.length); long diff = 0; while (index < minLen && (diff = Long.parseLong(version1Array[index]) - Long.parseLong(version2Array[index])) == 0) { index++; } if (diff == 0) { for (int i = index; i < version1Array.length; i++) { if (Long.parseLong(version1Array[i]) > 0) { return 1; } } for (int i = index; i < version2Array.length; i++) { if (Long.parseLong(version2Array[i]) > 0) { return -1; } } return 0; } else { return diff > 0 ? 1 : -1; } } 举例: Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1 Utils.compareVersion("1.0.360","1.0.358_20180820090553")=1 Utils.compareVersion("1.0.358.2","1.0.358_20180820090553")=-1 Utils.compareVersion("1.0.0.2","1.0.1")=-1
原文地址:https://www.cnblogs.com/xieshilin/p/12928609.html
- 厚土Go学习笔记 | 11. for循环 go语言只有for循环
- 从编译原理看一个解释器的实现
- 厚土Go学习笔记 | 10. 常量 与 数值常量
- Unity应用架构设计(7)——IoC工厂理念先行
- 厚土Go学习笔记 | 09. 类型转换 与 类型推导
- 厚积薄发,拥抱 .NET 2016
- 厚土Go学习笔记 | 08. 零值
- Unity应用架构设计(10)——绕不开的协程和多线程(Part 1)
- 代码审计|PHP代码执行函数进阶版实力上线了!
- Golang中巧用defer进行错误处理
- Unity应用架构设计(10)——绕不开的协程和多线程(Part 2)
- 厚土Go学习笔记 | 07. 基本类型
- Unity应用架构设计(11)——一个网络层的构建
- Go语言·Web调优详解
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释