版本的比较

被刻印的时光 ゝ 提交于 2019-11-29 13:20:52

问题来源,投递一家大数据的职位,让写的一个题:您好!我技术合伙人需要先考察一下您的代码功底,麻烦您用java实现version compare函数及测试用例,我发给技术合伙人看看。目标是做成库给外部开发者用,对任意软件的版本号做比较,输入参数为两个版本号。function versionCompare(v1, v2),v1、v2是任意软件的两个版本号,比较其大小关系。不得使用现成的版本比较库函数。

代码:

import org.junit.Test;

public class VersionControl {
    /**
     * @param version1 传入的第一个版本号 例如:"1.1.1"
     * @param version2 传入的第二个版本号 例如:"2.3.4"
     * @return 两个版本号的大小,返回值有-1,0,1
     */
    public static int compareVersion(String version1, String version2) {
         if (version1.equals(version2)) {
             return 0;
         }
         String[] version1Array = version1.split("\\.");
         String[] version2Array = version2.split("\\.");
         for(int i=0;i<version1Array.length;i++){
             if(version1Array[i]!=version2Array[i]){
                 return Integer.parseInt(version1Array[i])>Integer.parseInt(version2Array[i]) ? 1 : -1;
             }
         }
         return 0;
     }
    /**
     * 测试用例有1.1.1,1.1.1;10.1.1,9.1.2;1.1.2,1.2.3;         
     */
    @Test
    public void testcompareVersion(){
        String version1 = "10.1.1";
        String version2 = "9.1.2";
        int val = VersionControl.compareVersion(version1, version2);
        System.out.println(val);
    }

}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!