/*** 版本号比较** @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 比较两个版本号的大小 (通用)相关推荐

  1. Java比较两个数字的大小

    import java.util.Scanner; public class Qiu_zui_da_zhi {     public static void main(String[] args)   ...

  2. Java中两个字符串进行大小比较

    一:大小比较:使用 String.compareTo 方法 compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序) 1.如果字符串相等返回值0 2.如果第一个字符和参 ...

  3. java 比较两个字符串大小

    java 比较两个字符串大小 判断两个字符串是否相等 比较两个字符串的大小 判断两个字符串是否相等 如果state是true,则相等:是false,则不相等. String s1 = "zh ...

  4. Java实现比较APP版本号大小

    实现代码如下: /*** 比较APP版本号的大小* <p>* 1.前者大则返回一个正数* 2.后者大返回一个负数* 3.相等则返回0** @param version1 app版本号* @ ...

  5. java控制台两个字符串_java控制台输入字符串

    实验要求: 1/7 1.掌握 JDK 的安装及参数配置方法,能在控制台界面使用 Java 命令进行 Java 程序的编译及运行. 2.掌握 Eclipse 软件安装方法.3.掌握在 ...... 习题 ...

  6. tomcat 设置java内存_Tomcat 设置JVM内存大小

    我的服务器的配置: # OS specific support.  $var _must_ be set to either true or false. JAVA_OPTS="-Xms10 ...

  7. java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

    原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...

  8. java中两任务并行运行_Java并行编程中的“可调用”与“可运行”任务

    java中两任务并行运行 当我们用Java编写多线程应用程序时,我们倾向于使用" Runnable "接口来实现线程类. 您的类必须简单地实现此接口并覆盖run方法. 对于琐碎的用 ...

  9. 比较版本号:给你两个版本号 version1 和 version2 ,请你比较它们。

    一.题目描述      165. 比较版本号 给你两个版本号 version1 和 version2 ,请你比较它们. 版本号由一个或多个修订号组成,各修订号由一个 '.' 连接.每个修订号由 多位数 ...

最新文章

  1. poj 1696(极角排序)
  2. ZfNet解卷积:可视化CNN模型( PythonCode可视化Cifar10)
  3. php 原生文件下载
  4. react+mobx:如何组织store之最佳实践
  5. django 路由分发 url分层
  6. Mac 使用Eigen库
  7. IT人不可不听的10个职场故事
  8. pytorch教程:Flatten类实现的模版
  9. kafka 生产和消费信息入门
  10. 详解机器学习之感知机理论与实践
  11. mysql msi失败_MySQL .msi 安装失败改用.zip安装步骤
  12. 90后程序员程广坤教你零基础自学编程,用这6种方法就够了!
  13. WS2812B 5050数据整理
  14. android 爱加密 脱壳,简单尝试脱“爱加密”官网加固的DEX壳
  15. vue省市区三级联动-封装集成
  16. 一份个人计算机能力研修总结,计算机 个人研修总结
  17. 数据分析案例-大数据相关招聘岗位可视化分析
  18. 程鑫峰:3.1余威未散鲍威尔再度归来,伦敦金、长江金业行情分析
  19. python 可视化 皮肤_为什么我不建议你轻易入Python的“坑”?
  20. 向西,向西,到栖霞去(二)--走马看福山

热门文章

  1. IKVM 编程武林之.NET派的北冥神功
  2. 使用LightBDD轻松实现行为驱动开发
  3. 用啥Selenium?! .NET程序员就用自家的Playwright for .NET
  4. 分布式数字签名令牌TokenProvider
  5. 明天面腾讯,我刷了这71道面试题...
  6. 使用Docker运行SQL Server
  7. 字符串太占内存了,我想了各种奇思淫巧对它进行压缩
  8. 【壹刊】Azure AD(二)调用受Microsoft 标识平台保护的 ASP.NET Core Web API (上)
  9. 关于 Blazor Server Side 的一些杂项, 感想
  10. .NET Core开发实战(第11课:文件配置提供程序)--学习笔记