当前位置: 移动技术网 > IT编程>开发语言>Java > java字符串数组进行大小排序的简单实现

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

星宇卡盟,90后辣妈王小予,减肥瑜伽视频下载

若是将两个字符串直接比较大小,会包: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
   * */
  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

以上这篇java字符串数组进行大小排序的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网