给定两个版本号,比较哪一个版本号更新。

通过版本号的长度,有三种情况 1.2.9.1 比 1.2.9 新。

1.2.9 比 1.2.8.5 新。

1.2.9.8 比 1.2.9.3新




public class TestContrastVersionNum {public static void main(String[] args) {boolean flag = new TestContrastVersionNum().isUpdateForVersion("1.3.9","1.3.8.2");System.out.println(flag);}/** * 版本对比(是否需要更新版本) * @param newVersion 服务器上获取的版本 * @param indexVersion 当前使用的版本 * @return  true:服务器上是最新版本,需要更新; false:不需要更新 */public boolean isUpdateForVersion(String newVersion, String indexVersion) {// boolean resultFlag = false;if ("".equals(newVersion) || null == newVersion|| "null".equals(newVersion)) {return false;} else {String[] newNums = newVersion.split("\\.");String[] indexNums = indexVersion.split("\\.");if (newNums.length > indexNums.length) {// 比较的次数为长度最小for (int i = 0; i < indexNums.length; i++) {// 服务器上版本数大于 当前的,就是最新版,要更新if (Integer.parseInt(newNums[i]) > Integer.parseInt(indexNums[i])) {return true;} else if (Integer.parseInt(newNums[i]) < Integer.parseInt(indexNums[i])) {return false;}}return true;} else if (newNums.length <= indexNums.length) {for (int i = 0; i < newNums.length; i++) {// 服务器上版本数大于 当前的,就是最新版,要更新if (Integer.parseInt(newNums[i]) > Integer.parseInt(indexNums[i])) {return true;} else if (Integer.parseInt(newNums[i]) < Integer.parseInt(indexNums[i])) {return false;}}return false;}}return false;}}


更多相关文章

  1. android官方下载链接最新版 (Windows版本)
  2. android 版本更新和下载安装 适配android 7.0
  3. Android获取已安装应用信息(图标,名称,版本号,包)
  4. Android的版本的介绍
  5. Android Studio 3.0 正式版本 发行说明 (翻译)
  6. Android安卓应用版本命名规范
  7. 在低版本Android上使用Material Design
  8. 使用RenderScript库,在某些手机或Android版本奔溃的问题

随机推荐

  1. Docker遇到Syslog的踩坑小记
  2. Linux主要应用范围有哪些?Linux学习
  3. 【3.15-3.21】上周精彩回顾
  4. Python是什么?为什么Python受欢迎?
  5. 公有云和超算中心对比,高性能计算用户选哪
  6. ThreadLocal 慌不慌?
  7. Jenkins-2.283 破解密码
  8. Safari 浏览器中自动填充用户名和密码功
  9. 基于web的机票管理系统设计与实现(二)
  10. RabbitMQ:address (cannot connect to hos