废话不多说,直接上代码

 /**
* 判断是否为最新版本方法 将版本号根据.切分为int数组 比较
*
* @param localVersion 本地版本号
* @param onlineVersion 线上版本号
* @return 是否为新版本
* @throws IllegalArgumentException argument may not be null !
*/
public static boolean isNewVersion(String localVersion, String onlineVersion) {
if (localVersion == null || onlineVersion == null) {
throw new IllegalArgumentException("argument may not be null !");
}
if (localVersion.equals(onlineVersion)) {
return false;
}
//过滤非数字和非字符点
String[] localArray = localVersion.replaceAll("[^0-9.]", "").split("[.]");
String[] onlineArray = onlineVersion.replaceAll("[^0-9.]", "").split("[.]");
int length = localArray.length < onlineArray.length ? localArray.length : onlineArray.length;//取长度较短的版本
//以长度较短的版本为基点,逐个判断大小
for (int i = 0; i < length; i++) {
if (Integer.parseInt(onlineArray[i]) > Integer.parseInt(localArray[i])) {
return true;
} else if (Integer.parseInt(onlineArray[i]) < Integer.parseInt(localArray[i])) {
return false;
}
// 相等 比较下一组值
}
//长度较长的判断
//比较最后差异组数值
if (localArray.length < onlineArray.length) {//旧版本长度短于新版本
return Integer.parseInt(onlineArray[onlineArray.length - 1]) > 0;
} else if (localArray.length > onlineArray.length) {//旧版本长度长于新版本
return Integer.parseInt(onlineArray[onlineArray.length - 1]) < 0;//旧版本
}
return false;
}

java实现判定新旧版本号的更多相关文章

  1. java实现新旧版本号比较

    项目中需要使用比较现在线上版本和新版本,然后新版本执行新方法,方法如下: /** * * @方法名称:comparaVersion * @内容摘要: <版本比较> * @param old ...

  2. Hadoop日记Day15---MapReduce新旧api的比较

    我使用hadoop的是hadoop1.1.2,而很多公司也在使用hadoop0.2x版本,因此市面上的hadoop资料版本不一,为了扩充自己的知识面,MapReduce的新旧api进行了比较研究. h ...

  3. Java 8 的新特性和改进总览

    这篇文章是对Java 8中即将到来的改进做一个面向开发者的综合性的总结,JDK的这一特性将会在2013年9月份发布. 在写这篇文章的时候,Java 8的开发工作仍然在紧张有序的进行中,语言特新和API ...

  4. Android技巧小结之新旧版本Notification

    最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...

  5. MapReduce简述、工作流程及新旧API对照

    什么是MapReduce? 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查而且数出有多少张是黑桃. MapReduce方法则是: 1. 给在座的全部玩家中分配这摞牌. 2. 让每一个玩家数自己手 ...

  6. Java的 Annotation 新特性

    对于软件程序的开发经过了三个发展过程: —— 将所有配置相关的内容直接写到代码之中 —— 将配置与代码程序独立,将程序运行的时候根据配置文件进行操作 —— 配置信息对用户透明且无用,将配置信息写回代码 ...

  7. Java各版本新特性总结

       Java或者说JDK的更新一般分为两部分内容:Java语言.JVM(C.C++编写),但通常情况下都不会单独发布,因为新的语言特性需要特定的JVM支持才行.下面我总结了从古至今Java各版本的新 ...

  8. java 各版本新特性

    Java 5,6,7,8,9,10,11新特性吐血总结 lkd_whh关注赞赏支持 12018.04.01 14:09:15字数 1,948阅读 10,615 作者:拔剑少年 简书地址:https:/ ...

  9. Android新旧版本Notification

    Android新旧版本Notification 在notification.setLatestEventInfo() 过时了 以前: NotificationManager mn = (Notific ...

随机推荐

  1. [Java复习] Spring Framework 框架小结

    Spring 总共大约有 20 个模块,由 1300 多个不同的文件构成. 而这些组件被分别整合在   核心容器 (Core Container),   AOP(Aspect Oriented Pro ...

  2. c++ new bad_alloc

    try { for (int i = 0; i<1000; i++) { test1 = new Test(); cout << i << " new dog ...

  3. maven编译正常,运行报错:中没有主清单属性

    在pom.xml添加插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&g ...

  4. JAVA 基础编程练习题23 【程序 23 求岁数】

    23 [程序 23 求岁数] 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 ...

  5. PhpStorm设置项目编码

    因为工作中论坛项目用的是GBK编码.数据库也是GBK编码.模板也是GBK,所以为了以后修改程序不出现乱码问题,所以需要把我的PhpStorm中该项目也设置为GBK编码(默认是UTF8编码). 设置路径 ...

  6. GBDT详解例子

    https://blog.csdn.net/zpalyq110/article/details/79527653

  7. 我是如何提高工作效率的-工具篇(二)-listary

    痛点: 还在为不能闪电速度搜索全盘文件.程序.无缝切换程序烦恼吗? 效果图: 功能1:搜索 各种文件.支持模糊搜索.全拼.文字首字母等模糊查询方式. (功能强大.尽情探索!)   痛点:文件好多啊,可 ...

  8. 【AMAD】sorl-thumbnail -- Django缩略图

    动机 简介 个人评分 动机 生成缩略图是一个烦人的工作. 简介 sorl-thumbnail1的特性包括: 支持不同的storage 实现缩略图的引擎是可以切换的:Pillow, ImageMagic ...

  9. C#实现排列、组合

    排列组合的概念 排列:从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement). 组合:从m个不同的元素中,任取n(n≤m)个元 ...

  10. C语言--分支结构

    一.PTA实验作业 题目1:7-1 计算分段函数[2] 1.实验代码 float x, y; printf("Enter x:\n"); scanf("%f", ...