java字符串数组进行大小排序的简单实现
若是将两个字符串直接比较大小,会包:Theoperator>isundefinedfortheargumenttype(s)java.lang.String,java.lang.String的错误。
字符串比较大小可以用字符串长度或者是比较字符串内字符的ASCII码值,前者太简单,就不进行讲述记录。
字符串用ASCII码比较大小,规则是:
1、比较首字母的ASCII码大小
2、若是前面的字母相同,则比较之后的字母的ASCII码值
3、若是一个字符串从首字母开始包含另一个字符串,则认为字符串长度较长的大;例:abc>ab
备注:代码中使用commons-logging-1.2.jar,排序从小到大
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
/**
*对字符串数组进行排序
*@authorpanjianghong
*@since2016/8/31
**/
publicclassStringSort{
privatestaticfinalLog_log=LogFactory.getLog(StringSort.class);
/**
*对字符串数组进行排序
*@paramkeys
*@return
**/
publicstaticString[]getUrlParam(String[]keys){
for(inti=0;i<keys.length-1;i++){
for(intj=0;j<keys.length-i-1;j++){
Stringpre=keys[j];
Stringnext=keys[j+1];
if(isMoreThan(pre,next)){
Stringtemp=pre;
keys[j]=next;
keys[j+1]=temp;
}
}
}
returnkeys;
}
/**
*比较两个字符串的大小,按字母的ASCII码比较
*@parampre
*@paramnext
*@return
**/
privatestaticbooleanisMoreThan(Stringpre,Stringnext){
if(null==pre||null==next||"".equals(pre)||"".equals(next)){
_log.error("字符串比较数据不能为空!");
returnfalse;
}
char[]c_pre=pre.toCharArray();
char[]c_next=next.toCharArray();
intminSize=Math.min(c_pre.length,c_next.length);
for(inti=0;i<minSize;i++){
if((int)c_pre[i]>(int)c_next[i]){
returntrue;
}elseif((int)c_pre[i]<(int)c_next[i]){
returnfalse;
}
}
if(c_pre.length>c_next.length){
returntrue;
}
returnfalse;
}
publicstaticvoidmain(String[]args){
String[]keys=getUrlParam(newString[]{"fin","abc","shidema","shide","bushi"});
for(Stringkey:keys){
System.out.println(key);
}
}
}
控制台打印结果为:
abc
bushi
fin
shide
shidema
以上这篇java字符串数组进行大小排序的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。