比较两个版本字符串(4.xxx,5.xxx)

有谁知道如何比较Java中的两个版本字符串?

例如,

比较:1.0.3.1和1.0.4.1结果:1.0.4.1

提前致谢。

试金石

您可以使用以下代码:

public static void main(String[] args) {
    String version1 = "1.0.4.1";
    String version2 = "1.0.6.1";

    int result = compare(version1, version2);

    if(result==1){
        System.out.println("Latest version:"+version1);
    }else if(result==-1){
        System.out.println("Latest version:"+version2);
    }else{
        System.out.println("Both version same:"+version2);
    }
}

public static int compare(String version1, String version2){

    String ver1[]=version1.split("\\.");
    String ver2[]=version2.split("\\.");
    int counter =0;
    int len1= ver1.length;
    int len2= ver2.length;

    for(String v:ver1){

        if(len1>0 && len2>0 && v.compareTo(ver2[counter])>0 ){
            return 1;
        }else{
            if(len1>0 && len2>0 && v.compareTo(ver2[counter])<0) {
                return -1;
            }else{
                len1--;
                len2--;
                counter++;
            }   

        }
    }

    if(ver1.length > ver2.length){
        return 1;
    }else
        if(ver1.length < ver2.length){
            return -1;
        }

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

提取两个空格之间包含“xxx”的完整字符串

PHP替换以xxx开头并在5个字符后以yyy结尾的字符串

我想用空格 XX XXX XXX 分隔字符串

从字符串 ZXXXXXXXXX 中查找电话号码 +Z XXX-XXX-XXX

C#字符串unescape'&#xxx;'

在Java中,如何将数字格式化为字符串,使其格式为“ xxx.xxx.xxx,yy”?

正则表达式匹配字符串'xxx(yyy)(zzz(qqqq))'或'xxx(yyy)'

R:分割格式为“ xxx; yyy; zzz;”的字符串

grep表示类似xxx12345的字符串

(GETENV XXX)不是Lisp字符串或指针

R:分割格式为“ xxx; yyy; zzz;”的字符串

find -perm -xxx中连字符的含义

Java-奇怪的静态字符串行为-新的String(“ xxx”)与“ xxx”

没有可用类型为'xxx.xxx.xxx.xxx.MyUserDetailsService'的合格Bean:预期至少有1个合格为自动装配候选的Bean

Ubuntu 20.04 在启动期间卡在“/dev/nvme0n1p5 clean.xxx/xxx files.xxx/xxx blocks”

类文件有错误的版本xxx,应该是xxx

程序集XXX具有比引用的程序集XXX更高的版本

TypeError:需要一个类似字节的对象,而不是'str''xxx';'xxx'

删除另一个字符串中带有{{xxx}}的字符串

找不到模块xxx,xxx要求

以“=xxx+xxx...”的形式生成总和

拨打tcp:查找xxx.xxx.xxx.xxx:没有这样的主机

网络安全策略不允许与XXX.XXX.XXX.XXX进行CLEARTEXT通信

“ route add -host xxx.xxx.xxx.xxx dev eth0:1”的含义

C ++中的XXX注释

按XXX排序按钮

资源“ xxx”无法解析

输出端口上的XXX

错误:“ xxx”不是类型