Java实现判断是否为最新版本方法

2023-10-30

    /**
     * 判断是否为最新版本方法 将版本号根据.切分为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 0 > Integer.parseInt(localArray[localArray.length - 1]);
        }
        return true;
    }

有不同的想法以及更好的实现方案欢迎留言讨论

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java实现判断是否为最新版本方法 的相关文章

  • C++:计算游戏中的总帧数

    不是一个很好的标题 但我不知道该起什么名字 无论如何 我正在计算游戏中的总帧数 这样我就可以计算平均 FPS long int 万一游戏持续很长时间 我该怎么做才能确保我的long int不会增加超过其限制吗 如果超过极限会发生什么 Tha
  • C 如何计算没有浮点精度的百分比(千)

    如何将 2 个 int 值的百分比计算为表示百分比的 int 值 更精确的是千分之一 背景 目的 使用没有 FPU 的处理器 浮点计算所需的时间要长 100 倍 int x 25 int y 75 int resultPercentage
  • 你能在条件表达式中添加条件表达式吗? (是:边界检查如何扩展到多个维度?)

    Note 我通过实现一个完全不同的问题来解决最初的问题 有关新的实际问题 请参阅附录 但您可以阅读前一部分以了解上下文 这是我的一个的扩展以前的帖子 https stackoverflow com q 10171525 1010226 我根
  • 如何在 C++ 中打印带前缀 + 的正数

    有没有办法在 C 中打印整数及其符号 即默认情况下 如果数字为负数 我们会得到一个 印有标志 同理我们可以得到 在正数之前 int x 1 cout lt lt x lt
  • 如何声明文本字段只能包含整数?

    在 swift 中 我试图创建一个文本字段 该文本字段将允许启用按钮 但仅当文本字段包含整数时 我怎样才能做到这一点 两件事情 指定键盘类型以仅显示数字键盘 所以 设置keyboardType to numberPad 然而 这还不足以阻止
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo
  • Java:不使用 Arrays.sort() 对整数数组进行排序

    这是我们 Java 课程的练习之一中的说明 首先 我想说我 做了我的功课 我不仅仅是懒惰地请 Stack Overflow 上的人帮我回答这个问题 在所有其他练习中 这个特定项目一直是我的问题 因为我一直在努力寻找 完美的算法 编写JAVA
  • 一起使用 String 和 int 时的 System.out.println 行为 [重复]

    这个问题在这里已经有答案了 考虑下面的代码片段 public class Student public static void main String args int a 3 int b 4 System out println a b
  • 这里的退货是如何进行的?

    新问题 但是为什么表达式 from n number from firstFactorPtr Factor1 有人可以向我解释一下这是如何工作的吗 返回 因子 1 这将返回到 main 其中 factor 1 为什么 isPrime 返回t
  • char和int相加的结果[重复]

    这个问题在这里已经有答案了 考虑以下代码 System out println G 2 输出是 73 我能知道为什么以及如何做吗 在java中 一个char占用16位UTF 16编码 G s unicode https www rapidt
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 关于 unsigned int 的建议(江南 Style 版)

    视频 江南Style 我相信你已经听过 在 YouTube 上的观看次数刚刚突破 20 亿次 事实上 谷歌表示他们从未期望视频大于 32 位整数 这暗示了谷歌使用的事实 int 代替unsigned对于他们的观察柜台 我认为他们必须重新编写
  • 负字符值JAVA

    为什么会出现以下情况 char p 0 p System out println p result 65535 为什么不给出编译错误或运行时异常 我预计它是因为字符不能为负数 相反 它从颠倒开始倒数 提前致谢 为什么不给出编译错误或运行时异
  • 在 Swift 2.0 中将字符转换为 Int

    我只想转换一个特点进入一个Int 这应该很简单 但我发现以前的答案没有帮助 总有一些错误 也许是因为我正在 Swift 2 0 中尝试它 for i in unsolved characters fileLines String i toI
  • C++ int 转字节数组

    我的 java 代码中有这个方法 它返回给定 int 的字节数组 private static byte intToBytes int paramInt byte arrayOfByte new byte 4 ByteBuffer loca
  • 将由空格分隔的整数字符串更改为 int 列表[重复]

    这个问题在这里已经有答案了 我该如何做类似的东西 x 1 2 3 45 87 65 6 8 gt gt gt foo x 1 2 3 45 87 65 6 8 我完全陷入困境 如果我按索引执行此操作 那么超过 1 位数字的数字将被分解 请帮
  • 如何反转无符号整数的 4 个字节? [复制]

    这个问题在这里已经有答案了 我试图通过使用 和 以及按位 AND 和 OR 和 来反转无符号整数 但不知道如何执行此操作 我已经拥有的 int main int argc char argv unsigned int getal scanf
  • 有没有办法更改 C# 数组内的元组值?

    我正在使用的数组是int 我想在一个方法中创建每个 我假设的 元组的第一个值 然后我想多次修改后两个值 在另一种方法中 例如 int MyArrayGet int myArray int myArray new int 9 9 9 for
  • 确定 C 字符串是否是 C 中的有效 int

    我需要检查 C 字符串是否是有效整数 我都尝试过 int num atoi str and int res sscanf str d num 但发送字符串 8 9 10 这两行都仅返回 8 而没有指示该字符串的无效性 谁能提出替代方案 看看

随机推荐

  • 归纳演绎出的世界观

    题目略有写宽泛 刚读完 世界观 第一部分的内容 信息量有点大 迫切需要写篇读书笔记理清思路 归纳 和 演绎 方法 什么是归纳 Inductive 和演绎 Deductive 很多对于归纳 演绎的观点都是错误的 错误的以为两者是对立的 要么是
  • Spring MVC Controller配置方式

    Spring MVC 入门示例http cuisuqiang iteye com blog 2042931中 配置Controller时使用的是URL对应Bean的方式在SpringMVC中 对于Controller的配置方式有很多种 如下
  • Python—re正则表达式

    1 首先需导入模块import re 2 在一串字符中 findall方法可以获取全部能够匹配的片段 并把结果放在一个列表中 书写方式 re findall 正则表达式 规定匹配规则 被匹配的对象 3 使用findall方法匹配普通字符 4
  • 求k个数组包含每个数组至少一个元素的最小范围(待字闺中,备忘)

    有k个有序的数组 请找到一个最小的数字范围 使得这k个有序数组中 每个数组都至少有一个数字在该范围中 例如 1 4 10 15 24 26 2 0 9 12 20 3 5 18 22 30 所得最小范围为 20 24 其中 20在2中 22
  • 主流微服务全链路监控系统之战

    问题背景 随着微服务架构的流行 服务按照不同的维度进行拆分 一次请求往往需要涉及到多个服务 互联网应用构建在不同的软件模块集上 这些软件模块 有可能是由不同的团队开发 可能使用不同的编程语言来实现 有可能布在了几千台服务器 横跨多个不同的数
  • 抖店评价有礼怎么设置

    随着电商行业的不断发展和竞争的加剧 如何吸引消费者 提高店铺的口碑成为了每个卖家关注的焦点 其中 抖音电商平台的礼貌评价功能受到广大卖家的青睐 那么 如何设置抖店评论才能有礼貌呢 我们一起来讨论一下吧 如何设置抖店评价礼貌度 首先 开启礼貌
  • 工具--Typora详解

    工具 Typora详解 零 文章目录 一 MarkDown 1 MarkDown是什么 Markdown 是一种轻量级标记语言 它允许人们使用易读易写的纯文本格式编写文档 Markdown 语言在 2004 由约翰 格鲁伯 英语 John
  • opengles reference card

    https www khronos org files opengles31 quick reference card pdf https www khronos org opengles sdk docs reference cards
  • mac系统ssh文件位置

    open ssh 转载于 https www cnblogs com thinkingthigh p 8874204 html
  • js的数字和字符串区分不开问题

    我们在开发的时候经常会出现 if this name 1 执行对应逻辑 但是就是在这个判断的时候 就是不知道该写成 if this name 1 执行对应逻辑 还是写成 if this name 1 执行对应逻辑 这是一个坑 代码调试时候遇
  • 第十四届蓝桥杯模拟赛(第三期)——Java版

    第一题 请找到一个大于 2022 的最小数 这个数转换成十六进制之后 所有的数位 不含前导 0 都为字母 A 到 F 请将这个数的十进制形式作为答案提交 public class Main public static void main S
  • MacBook m1pro在conda环境关于架构出现过的问题

    回想一下十月份的时候刚拿到电脑做了点啥 刚开始没有进行转换架构的虚拟环境的设置 导致好像是安装pyqt5 一直失败 总之查了半天 最后指向似乎是架构问题 然后利用https www bilibili com read cv13742031
  • vue3项目引入typescript总结

    tsconfig json详细配置 根选项 include 指定被编译文件所在的目录 exclude 指定不需要被编译的目录 extends 指定要继承的配置文件 files 指定被编译的文件 references 项目引用 是 TS 3
  • 使用python-pyhdfs连接hdfs时报错

    一 问题描述 raise ConnectionError e request request ConnectionError HTTPConnectionPool host a port 50075 Max retries exceeded
  • python爬虫js逆向学习(三)

    1 问题分析 1 1 查询条件设置后进行点击事件 可抓取到ajax请求的获取的数据包 1 2 对数据包请求过程进行分析 发现Formdata及respopnse都是加密的且formdata中的参数每次刷新后都不同 1 3 既然参数及相应数据
  • 哈希桶的实现

    上一篇博客中介绍了用闭散列法的二次探测和开链法构造哈希表的原理即实现方式 构造哈希表的闭散列法之二次探测地址 http blog csdn net qq 36221862 article details 73488162 下面介绍另一种方法
  • QT__TCP

    QTcpSocket断开自动重新连接 auto connect after disconnected 转载于 http blog csdn net owldestiny article details 8452605 QTcpSocket断
  • 小程序引入vant-weapp

    小程序引入第3方样式库
  • 灰度直方图OpenCV

    recognition cpp 此文件包含 main 函数 程序执行将在此处开始并结束 include pch h include
  • Java实现判断是否为最新版本方法

    判断是否为最新版本方法 将版本号根据 切分为int数组 比较 param localVersion 本地版本号 param onlineVersion 线上版本号 return 是否为新版本 throws IllegalArgumentEx