对字符串数组进行ASCII码规则排序

本文介绍了一个简单的字符串数组排序算法实现,该算法通过冒泡排序方式对字符串数组进行排序,并使用ASCII码值进行比较。文章提供了完整的Java代码示例,包括错误处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
   * */
  private 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]){
        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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值