public static void main(String[] args) {
int N=5;
String temp = null;
String[] s = new String[N];
s[0] = "matter";
s[1] = "state";
s[2] = "solid";
s[3] = "liquid";
s[4] = "gas";
for(int i=0; i for(int j=i+1; j if(compare(s[i], s[j]) == false) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
for(int i=0; i System.out.println(s[i]);
}
}
static boolean compare(String s1, String s2) {
boolean result = true;
for(int i=0; i if(s1.charAt(i) > s2.charAt(i)) {
result = false;
break;
} else if(s1.charAt(i) <s2.charAt(i)) {
result = true;
break;
} else {
if(s1.length() < s2.length()) {
result = true;
} else {
result = false;
}
}
}
return result;
}
}
请问这个是如何比较的,思路是什么,步骤表示什么意思,万分感谢!
对两个字符串逐个字符比较ascii,如果第一个比第二个大,返回false,第二个比第一个大,返回true,两个相等,比字符串的长度,如果第一个字符串短,返回true,否则返回false。
比如
aaa和aba比,第一个相同,第二个a>b,后面不比了,返回false
aa和aaa比,第一个相同第二个也相同,第三个,因为前面的短,返回true
aaa和aaa比,前面条件都符合,所以返回false
aaa aba aa aaa如果排序的话,则是
aba
aa
aaa
aaa
这个思路挺简单,主要是对字符数组里面的数组元素进行ASCII码比较。,首先两个字符串比较,判断过程中如果第一个比第二个大,返回false,第二个比第一个大,返回true,两个相等,比字符串的长度,如果第一个字符串短,返回true,否则返回false。