Java对字符串排序,要求先按长度排序,再按首字母排序,如果首字母相同比第二个字母,如果第二个字母相同就根据输入的顺序输出,请问最后这个条件怎么写。
目前写到了按长度排序,再按首字母排序,不知道最后那个第二个字母相同的条件怎么写
int strcmp(const char *str1,const char *str2)
{
/*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,
return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
while(*str1 == *str2)
{
assert((str1 != NULL) && (str2 != NULL));
if(*str1 == '\0')
return 0;
str1++;
str2++;
}
return *str1 - *str2;
}
看一个c++的字符比较。
if(e1.length() != e2.length()){
return e2.length() - e1.length();
}
if(e1.charAt(0) != e2.charAt(0)){
return e1.charAt(0) - e2.charAt(0);
}
if(e1.charAt(1) != e2.charAt(1)){
return e1.charAt(1) - e2.charAt(1);
}else{
return 0;
}