JAVA使用split解决常用版本比较方法

package io.renren;

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;

public class BijiaoDemo {
    @Test
    public void test1(){
        int result=compareVersion2("3.2.1","3.2.2");
        switch (result){
            case 0:System.out.println("result:相同");break;
            case 1:System.out.println("result:左边版本高");break;
            case -1:System.out.println("result:右边版本高");break;
        }
    }
    /**
     * 版本号比较
     *
     * @param v1
     * @param v2
     * @return 0代表相等,1代表左边大,-1代表右边大
     */

    public static int compareVersion2(String v1, String v2) {
        if(StringUtils.equals(v1,v2)){
            return 0;
        }
        String[] a=v1.split("[._]");
        String[] b=v2.split("[._]");

        int index=0;
        int minLength=Math.min(a.length,b.length);
        long diffResult=0;
        while(index <  minLength &&(diffResult=(Long.parseLong(a[index])-Long.parseLong(b[index])))==0){
            index++;
        }
        if(diffResult==0){
            for(int i=index;i0){
                    return 1;
                }
            }
            for(int i=index;i0){
                    return -1;
                }
            }
            return 0;
        }else{
            return diffResult>0?1:-1;
        }
    }
}

 

你可能感兴趣的:(Java学习)