版本的比较

问题来源,投递一家大数据的职位,让写的一个题:您好!我技术合伙人需要先考察一下您的代码功底,麻烦您用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);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值