日期:2014-05-20  浏览次数:20902 次

含有数字的字符串比较大小
str1="12-a-33";
str2="5-b";
str3="a-5-b";
str4="12-a-c";
str5="12-b-7";
例如:
str1和str2比较,12大于5,那么str1<str2;
str1和str3比较,a的ascii码小于1的,那么str3<str1;
str4和str5比较,a的ascii码小于b的,那么str4<str5;
逐一比较后的顺序为:
a-5-b
5-b
12-a-c
12-a-7
12-a-33
如何用java代码完成上述排序结果?
------解决方案--------------------
楼主这个根本就是自然的字符串比较顺序啊,利用TreeSet这个自然的排序集合

String str1="12-a-33",str2="5-b",str3="a-5-b",str4="12-a-c",str5="12-b-7";
//由于TreeSet默认的是从小到大的,所以我们用一个Comparator给他倒序下
TreeSet<String> set=new TreeSet<String>(new Comparator<String>(){
        @Override
public int compare(String o1, String o2) {
return -o1.compareTo(o2);
}
});
set.add(str1);
set.add(str2);
set.add(str3);
set.add(str4);
set.add(str5);
System.out.println(set);