java版本⼤⼩⽐较_⽐较两个版本⼤⼩java版今天接到⼀个⾯试,要在线写⼀个java版本⽐较的⼯具。就⾃⼰写了⼀个,万⼀以后⽤的到呢,写个博客留下来
该版本适合⼤⼩写,字符数字混合,截取的字符串长度不等,这些情况
/**
* ⽐较版本⼤⼩
* @author chen
*/
public class Demo01 {
public static void main(String[] args) {
String v1 = "v1.21.4A";
String v2 = "v1.22.4d";
//⽐较版本函数
compareVersion(v1,v2);
}
/**
* 该⽅法⽤于⽐较版本⼤⼩
* @param v1 版本v1
* @param v2 版本v2
*/
public static void compareVersion(String v1,String v2){
//使⽤正则表达式分割版本
String[] v1s = v1.split("\\.");
String[] v2s = v2.split("\\.");
/java valueof
/⽐较正则表达式分割后的string数组
int result = compareStrings(v1s,v2s);
//根据结果判断版本⼤⼩
if(result>0){
System.out.println("v2版本⼤");
}else if(result<0){
System.out.println("v1版本⼤");
}else{
System.out.println("v1版本=v2版本");
}
}
* 该⽅法⽤于⽐较正则表达式分割后的string数组
* @param v1s 版本1分割后的string数组
* @param v2s 版本2分割后的string数组
* @return -1 v1版本⼤,1 v2版本⼤,0 ⼀样⼤
*/
public static int compareStrings(String[] v1s,String[] v2s){ for(int i=0;i
//⽐较单个字符串⼤⼩
int com = compareChars(v1s[i],v2s[i]);
if(com!=0){
return com;
}
}
return 0;
}
/**
* 该类通过⽐较单个字符串的hash值⼤⼩来得到版本号⼤⼩
* @param v1s 版本1分割后的string
* @param v2s 版本2分割后的string
* @return -1 v1版本⼤,1 v2版本⼤,0 ⼀样⼤
*/
public static int compareChars(String v1s,String v2s){ char[] c1 = CharArray();
char[] c2 = CharArray();
/
/当char数组长度相等时
if(c1.length==c2.length){
for (int i = 0; i < c1.length; i++) {
if(getHashCode(c1[i])>getHashCode(c2[i])){
return 1;
}else if(getHashCode(c1[i])
return -1;
}
}
//当char数组长度不等时
if(c1.length
for (int i = 0; i < c1.length; i++) {
if(getHashCode(c1[i])>getHashCode(c2[i])){
return 1;
}else if(getHashCode(c1[i])
return -1;
}
}
return 1;
}
//当char数组长度不等时
if(c1.length>c2.length){
for (int i = 0; i < c2.length; i++) {
if(getHashCode(c1[i])>getHashCode(c2[i])){
return 1;
}else if(getHashCode(c1[i])
return 1;
}
}
return -1;
}
return 0;
}
/
/将char转换⼩写并获取hashCode值
public static int getHashCode(char c){
return String.valueOf(c).toLowerCase().hashCode(); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论