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