public class TestStringSort{
public static int compare(String s1,String s2){
int num1,num2;
for(int i=0,j=0;i<s1.length()&&j<s2.length();i++,j++){
num1=s1.charAt(i);
num2=s2.charAt(j);
if(num1<91&&num2<91){ //两大写2
if(num1<num2) { //A,B A在B之前 返回1
return 1;
}
else if(num1>num2){// B,A B在A之后 返回-1
return -1;
}
}
else if(num1>90&&num2>90){//两小写
if(num1>num2){ //b,a b在a之后 返回-1
return -1;
}
else if(num1<num2){ // a,b a在b之前 返回1
return 1;
}
}
else if(num1<91&&num2>90){//一大一小
if(num1+32==num2){ //A,a A在a之前 返回 1
return 1;
}
else {
if(num1+32<num2){// A,b A在b之前 返回1
return 1;
}
else if(num1+32>num2){// B,a B在a之后 返回-1
return -1;
}
}
}
else if(num1>90&&num2<91){//一小一大
if(num1==num2+32){ //a, A a在A之后 返回-1
return -1;
}
else{
if(num1<num2+32){ //a, B a在B之前 返回1
return 1;
}else if(num1>num2+32){//b,A b在A之后返回-1
return -1;
}
}
}
}
return 0;
}
public static void main(String args[]){
String[] s={"abds","Aded","Bdef","ABdS","degh","Dghj","Exyz","eXyz","ExYZ"};
for(int i=0;i<s.length;i++){
for(int j=1;j<s.length;j++){
if(TestStringSort.compare(s[j-1],s[j])<0){
String temp="";
temp=s[j-1];
s[j-1]=s[j];
s[j]=temp;
}
}
}
for(String str:s){
System.out.print(str+" ");
}
}
}