/**
* 版本号比较
*
* @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
相关推荐
比较版本号算法
比较版本号算法,适用于大多数版本号比较。比较实用的一个工具类
Java实现比较APP版本号大小
实现代码如下: /** * 比较APP版本号的大小 * <p> * 1、前者大则返回一个正数 * 2、后者大返回一个负数 * 3、相等则返回0 * * @param version1 app版本号 * @param version2 app版本号 * @return int */ ...
STM32H7 Flash擦除后数据读取异常的缓存问题解析
本文深入分析了STM32H7系列芯片在Flash擦除后数据读取异常的缓存问题,揭示了由于数据缓存(D-Cache)和指令缓存(I-Cache)导致的数据一致性问题。通过详细的解决方案,包括手动维护缓存一致性和操作期间禁用缓存,帮助开发者有效解决这一常见但棘手的嵌入式开发难题。
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 (...
ROS2多线程处理RTSP视频流避坑指南:OpenCV解码丢帧问题解决方案
本文针对ROS2中处理RTSP视频流时OpenCV解码丢帧的常见问题,提供了专业的解决方案。通过深入分析单线程模型的瓶颈,提出并详细拆解了基于生产者-消费者多线程模型的健壮实现方案,有效分离数据采集与处理,从而显著提升视频流的稳定性和流畅度。
保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码)
本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。
Hutool工具类和工具方法
基础工具类: StrUtil/StringUtils -字符串工具类 添加移除:addXXX/appendXXX/removeXXX 判断:containsXXX/startWithXXX/endWithXXX/indexOfXXX/lastIndexOfXXX/ordinalIndexOf/ isAllCharMatchisBlankIfStr/isBlankOrUndefined/isNullOrUndefined/hasBlank/hasEmpty/ isEmpty/isNotE
【算法实战】Keystone变换:从原理到MATLAB实现的距离走动校正
本文深入解析Keystone变换在雷达信号处理中的距离走动校正应用,从原理到MATLAB实现全面讲解。通过三种实现方法(DFT+IFFT、Sinc插值、Chirp-Z变换)的对比分析,结合实战案例展示如何有效解决高速目标导致的距离单元跨越问题,提升多普勒频谱聚焦质量。
有哪些比较版本差异的工具呀
这些工具可以帮助我们识别不同版本之间的变化和差异,并提供有关这些差异的详细信息,以便进行比较、合并或评估。根据自己的具体需求和所处理的内容类型,选择适合的工具将有助于管理和理解版本之间的差异。
告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程
本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。
Dify 第 2 篇 Dify 插件离线安装
Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。
探秘compare-versions:一个强大的版本号比较工具
探秘compare-versions:一个强大的版本号比较工具 当你在处理软件版本管理时,是否曾因为复杂的版本号比较而困扰?现在,有一个叫做compare-versions的开源项目可以帮助你解决这个问题。这个轻量级库不仅完全符合语义化版本(SemVer)标准,还支持多种版本格式和范围操作。 项目介绍 compare-versions是一个JavaScript库,专为在浏览器和Node.js环境中...
复现:Mamba-UNet:降水临近预报的创新解决方案
Mamba-UNet通过其创新的双分支Mamba融合模块、多尺度时空注意力模块和动态分位数加权损失函数,在降水临近预报领域取得了显著的性能提升。它不仅在多种降水场景下表现出色,尤其在预测强降水事件方面展现出了强大的能力。这一创新模型为降水临近预报提供了一种新的解决方案,有望在未来的研究和应用中发挥更大的作用,为应对气候变化带来的挑战提供有力支持。随着技术的不断发展和优化,我们期待Mamba-UNet在更广泛的气象预报任务中发挥更大的价值,为各行各业提供更精准、更可靠的降水预报服务。
android版本号的比较
版本号的比较(用于升级判断): 比如: 1.1 与 1.2 1.1.1 与 1.1.2 1.1 与 1.1.2 工具类 public class VersionUtil { /** * 版本号比较 * * @param version1 * @param version2 * @return */ ......
代数拓扑与AI架构:AI应用架构师深入探索数学研究如何分析复杂系统的结构特性
随着人工智能技术的飞速发展,AI系统变得越来越复杂。AI应用架构师需要有效的工具和方法来理解、设计和优化这些复杂系统。代数拓扑作为数学的一个分支,提供了独特的视角和技术来分析复杂系统的结构特性。本文旨在帮助AI应用架构师深入了解代数拓扑,以及如何将其应用于AI架构设计中,提升对复杂系统的分析能力。首先,我们会介绍代数拓扑和AI架构相关的核心概念及其联系,通过有趣的故事引入主题,让读者轻松理解复杂概念。接着,深入探讨代数拓扑的核心算法原理,结合具体的编程语言代码示例详细阐述。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
版本比较工具类(通用)
在java后台开发中,经常会遇到某一个版本以后才要上新特性,此时就可以将版本比较工具类派上用场了。 public class VersionCompare { /** * 判断版本1是否在版本2之后 * @param version1 * @param version2 * @return */ public static boolean afterVersion(S
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
版本号工具类
【代码】版本号工具类。
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
java中版本号比较大小
* compareTo 一定不要用 例如在比较10.0.1 和 9.8.3是就会显示后面的数大; 下面这个工具类可以比较大小 package com.icbc.tgmgmt.app; /** * * version1 目标版本 * version2 源版本 * modify by user on 2018-5-21 */ public class C...
Android version版本号对比
新旧版本号对比
java实现版本比较
package com.hzxc.chess.server.util; /** * Created by hdwang on 2018/3/19. * 版本比较工具类 */ public class VersionCompareUtil { /** * 比较版本大小 * * 说明:支n位基础版本号+1位子版本号 ...
版本号比较-工具类
/** * @author zhangbo */ public class VersionUtil { /** * 比较APP版本号的大小 * <p> * 1、前者大则返回一个正数 * 2、后者大返回一个负数 * 3、相等则返回0 * * @param version1 app版本号 * @param version2 app版本号 * @return int */ publ.
版本号比较工具类
/** * 比较版本号的大小 (两个版本号格式应尽量相同) * * @param v1 版本号1 * @param v2 版本号2 * @return 正数:v1大 负数:v2大 0:相等 */ public static int checkVersion(String v1, String v2) { String[] verArr1 = v1.split("\\."); String[] verArr2 = v2.split("\\."); int idx =.
Swift3 获取版本号,比较版本大小
Swift获取应用版本号:version 1、获取本地版本号 /// 获取本地版本号 func getLocalVersion() -> String { var localVersion:String = "" //当前版本 if let v:String = Bundle.main.object(forInfoDictionaryKey: "CF...
python 比较两个版本号大小
比较两个版本号ver1和ver2的大小 1、首先将两个版本号处理成纯数字的版本号,如5.2.1.3.20 2、将版本号按“.”切割为列表,从索引0开始依次比较列表的大小 3、对比两个列表的len,len较短的作为循环次数,防止列表索引越界 4、如果循环结束后仍没有对比出结果,则对比列表len,len值大的为高版本 def compared_version(ver1, ver2):...
Java 比较两个版本号的大小 (通用)
/** * 版本号比较 * * @param v1 * @param v2 * @return 0代表相等,1代表左边大,-1代表右边大 * Utils.compareVersion("1.0.358_20180820090554","1.0.358_20180820090553")=1 */ public s...
比较两个版本号的大小
步骤: 1.通过"."进行分割字符串 2.先看两个字符串的前半部分是否相等 3.如果相等,那么有三种情况:字符串1长于2,2长于1,1等于2 如果是长于的情况,比如1.2.0是等于1.2的,所以对于长于的部分要看是否大于0 其他的长于情况,比如1.2.1>1.2 4.如果不相等 字符串二者相减:diff>0?1:-1 注意: 1.使用public static int ...
1万+



被折叠的 条评论
为什么被折叠?



