java - 比较两个版本字符串(4.x.x.x、5.x.x.x)

标签 java string compare version

有谁知道如何在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;
}

关于java - 比较两个版本字符串(4.x.x.x、5.x.x.x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29313737/

相关文章:

java - Spring @Transactional 注解问题

java - org.springframework.expression.spel.SpelEvaluationException : EL1008E: Property or field 'latestTotalCases' cannot be found on object

python - 如何将反斜杠转义序列放入 f-string

ruby - 检查字符串是否包含 Ruby 中的特定字符序列

javascript - 为什么我的 If 语句在 AngularJS 中的 JS 中不能 100% 工作

更改类的包名后,Java 对象将无法反序列化。我能做什么呢?

java - 如何为 JTable 列标题添加渐变背景?

database - 如何从整数中获取唯一的短字符串?

javascript字符串差异

java - Java 中基于月份的日期选择器