java字符串数组进行大小排序的简单实现

网友投稿 197 2023-07-07


java字符串数组进行大小排序的简单实现

若是将两个字符串直接比较大小,会包:The operator > is undefined for the argument type(s) java.lang.String, java.lang.String的错误。

字符串比较大小可以用字符串长度或者是比较字符串内字符的ASCII码值,前者太简单,就不进行讲述记录。

字符串用ASCII码比较大小,规则是:

1、比较首字母的ASCII码大小

2、若是前面的字母相同,则比较之后的字母的ASCII码值

3、若是一个字符串从首字母开始包含另一个字符串,则认为字符串长度较长的大;例 :abc > ab

备注:代码中使用commons-logging-1.2.jar,排序从小到大

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

/**

* 对字符串数组进行排序

* @author panjianghong

* @since 2016/8/31

* */

public class StringSort {

private static final Log _log = LogFactory.getLog(StringSort.class);

/**

* 对字符串数组进行排序

* @param keys

* @return

* */

public static String[] getUrlParam(String[] keys){

for (int i = 0; i < keys.length - 1; i++) {

for (int j = 0; j < keys.length - i -1; j++) {

String pre = keys[j];

String next = keys[j + 1];

if(isMoreThan(pre, next)){

String temp = pre;

keys[j] = next;

keys[j+1] = temp;

}

}

}

return keys;

}

/**

* 比较两个字符串的大小,按字母的ASCII码比较

* @param pre

* @param next

* @return

* */

privateqhULHSB static boolean isMoreThan(String pre, String next){

if(null == pre || null == next || "".equals(pre) || "".equals(next)){

_log.error("字符串比较数据不能为空!");

return false;

}

char[] c_pre = pre.toCharArray();

char[] c_next = next.toCharArray();

int minSize = Math.min(c_pre.length, c_next.length);

for (int i = 0; i < minSize; i++) {

if((int)c_pre[i] > (int)c_next[i]){

return true;

}else if((int)c_pre[i] < (int)c_next[i]){

qhULHSB return false;

}

}

if(c_pre.length > c_next.length){

return true;

}

return false;

}

public static void main(String[] args) {

String[] keys = getUrlParam(new String[]{"fin","abc","shidema","shide","bushi"});

for (String key : keys) {

System.out.println(key);

}

}

}

控制台打印结果为:

abc

bushi

fin

shide

shidema


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java String[]字符串数组自动排序的简单实现
下一篇:Java 字符串的拼接详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~