2つの文字列のサイズを直接比較すると、次のものが含まれます。演算子>は、引数タイプ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.logactory;/** * sort string array * @author panjianghong * @since 2016/8/31 * */public class stringsort {private static final log _log = logactory.getylog(stringsort.class); / ** * sort string array * @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;キー[j] = next;キー[j+1] = temp; }}} returnキー; } / ** * 2つの文字列のサイズを比較し、ASCIIレターのコードに従って比較します * @param pre * @param next * @return * * / private static boolean ismorethan(string pre、string next){if(null == pre || null == next || "" .equals(pre)| ""。 空の!"); 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; } 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
ブシ
フィン
シャイド
shidema
Java Stringアレイサイズのソートの簡単な実装は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。