導航:首頁 > 編程語言 > javalist字母排序

javalist字母排序

發布時間:2025-06-07 04:42:10

1. java list 字元精確排序 例如: a1 a12 a13 a2 a3 排序後是:a1 a2 a3 a12 a13 ,不是a1 a12 a13 a2 a3

package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test {

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("3");list.add("a1");list.add("a12");list.add("a13");list.add("a2");
list.add("a3");list.add("c1");list.add("b2");list.add("d1");
list.add("b1");list.add("c3");list.add("2");list.add("1");
System.out.println("排序前------>"+list);
Collections.sort(list, new Comparator<String>() {
String regNum = "[\\d]";//數字字元
String regStr = "[^\\d]";//非數字字元
@Override
public int compare(String o1, String o2) {
int num1 = Integer.parseInt(o1.replaceAll(regStr, ""));
int num2 = Integer.parseInt(o2.replaceAll(regStr, ""));
String str1 = o1.replaceAll(regNum, "");
String str2 = o2.replaceAll(regNum, "");
//都有字母
if( ! isnull(str1) && ! isnull(str2)){
if(str1.compareTo(str2) > 0){
return 1;
}else if(str1.compareTo(str2) < 0){
return -1;
}else{
return num1-num2;
}
}else{//存在數字
//都是數字
if(isnull(str1) && isnull(str2)){
return num1 - num2;
}else if(isnull(str1) && ! isnull(str2)){//數字排前面:o1是數字,o2不是數字
return -1;
}else if(! isnull(str1) && isnull(str2)){//數字排前面:o1不是數字,o2是數字
return 1;
}else{
return 0;
}
}
}

});
System.out.println("排序後======>"+list);
}
private static boolean isnull(String str){
return str == null || str.trim().length() == 0;
}

}

閱讀全文

與javalist字母排序相關的資料

熱點內容
同一個網站怎麼發文章 瀏覽:725
蘋果翻蓋手機多少錢 瀏覽:815
flash80金鷹教程 瀏覽:374
怎麼把美國的app賬號換成中國的 瀏覽:375
貸款60秒app 瀏覽:408
捷安特騎行app有什麼獎勵 瀏覽:542
網站圖片展示代碼 瀏覽:167
asp找回密碼 瀏覽:836
如何知道別人使用我的電腦和看了什麼文件 瀏覽:712
prcs4視頻導出後找不到文件 瀏覽:977
msp430系列單片機實用c語言程序設計 瀏覽:423
移動硬碟的文件格式 瀏覽:904
文件本地路徑與雲路徑 瀏覽:103
進大白菜找不到系統文件 瀏覽:380
ug裝配體找不到文件部件已刪除 瀏覽:629
小網站怎麼弄出來 瀏覽:649
jsp表單加參數 瀏覽:607
蘋果5s手機老是卡屏 瀏覽:58
js給php變數賦值 瀏覽:446
雜志版本號是什麼意思 瀏覽:223

友情鏈接