Java:比较版本号

问题

比较两个版本号version1和version2。如果version1> version2返回1,如果version1 <version2返回-1,否则返回0。您可以假定版本字符串为非空,并且仅包含数字和。字符。的。字符不代表小数点,用于分隔数字序列。这是版本号排序的示例:

0.1 <1.1 <1.2 <13.37

Java解决方案

问题的棘手部分是处理1.0和1之类的情况。它们应该相等。

public int compareVersion(String version1, String version2) {
    String[] arr1 = version1.split("\\.");
    String[] arr2 = version2.split("\\.");
 
    int i=0;
    while(i<arr1.length || i<arr2.length){
        if(i<arr1.length && i<arr2.length){
            if(Integer.parseInt(arr1[i]) < Integer.parseInt(arr2[i])){
                return -1;
            }else if(Integer.parseInt(arr1[i]) > Integer.parseInt(arr2[i])){
                return 1;
            }
        } else if(i<arr1.length){
            if(Integer.parseInt(arr1[i]) != 0){
                return 1;
            }
        } else if(i<arr2.length){
           if(Integer.parseInt(arr2[i]) != 0){
                return -1;
            }
        }
 
        i++;
    }
 
    return 0;
}

在这里插入图片描述

发布了17 篇原创文章 · 获赞 0 · 访问量 191

猜你喜欢

转载自blog.csdn.net/qq_41806546/article/details/105120238