private static int compareSerialNum(String str1,String str2){
if(str1.equals(str2)){
return 0;
}
if(!str1.contains(".")&&!str2.contains(".")){
return str1.compareTo(str2);
}else{
int i1=0,i2=0;
char c1='*',c2='*';
if(str1.matches("[A-Z].*")){
c1 = str1.charAt(0);
}else{
if(str1.contains(".")){
i1 = Integer.parseInt(str1.substring(0,str1.indexOf(".")));
}else{
i1 = Integer.parseInt(str1);
}
}
if(str2.matches("[A-Z].*")){
c2 = str2.charAt(0);
}else{
if(str2.contains(".")){
i2 = Integer.parseInt(str2.substring(0,str2.indexOf(".")));
}else{
i2 = Integer.parseInt(str2);
}
}
if(c1!=c2){
return c1-c2;
}else{
if(i1!=i2){
return i1-i2;
}
}
}
char[] charArr1 = str1.toCharArray();
char[] charArr2 = str2.toCharArray();
int length1 = str1.length();
int length2 = str2.length();
int len = length1>length2?length2:length1;
for(int i=0;i<len;){
if(charArr1[i] == charArr2[i]){
i++;
}else if(charArr1[i] == '.'){
return -1;
}else if(charArr2[i] == '.'){
return 1;
}else{
return charArr1[i] - charArr2[i];
}
}
return length1-length2;
}
转载于:https://blog.51cto.com/brightaries/1970043