public static void main(String[] args) { String[] a = {"1号","12号", "号21", "a33号","b9号"}; Arrays.sort(a, new Comparator<String>(){ public int compare(String s1, String s2) { int ai = Integer.parseInt(s1.replaceAll("[^0-9]*","")); int bi = Integer.parseInt(s2.replaceAll("[^0-9]*","")); if(ai > bi) return 1; else if(ai == bi) return 0; else return -1; }
如果是在数据库中的话
直接用substring 截取第一个字符 进行 排序就可以了啊
public static void main(String[] args) {
String[] a = {"1号","12号", "号21", "a33号","b9号"};
Arrays.sort(a, new Comparator<String>(){
public int compare(String s1, String s2) {
int ai = Integer.parseInt(s1.replaceAll("[^0-9]*",""));
int bi = Integer.parseInt(s2.replaceAll("[^0-9]*",""));
if(ai > bi)
return 1;
else if(ai == bi)
return 0;
else
return -1;
}
});
for(String str : a){
System.out.println(str);
}
}