基于java中的double值对字符串列表进行排序

时间:2013-10-18 21:20:59

标签: java list sorting

我有以下格式的字符串列表

["BlahBlahBlahBlah   0.9877"]
["ABCabcABCabcAbc   1.7852"]

正如你所看到的,两者之间是一个空格。由于一些限制,我无法改变设计。

我需要做的是根据最后的双号对列表进行排序。 任何人都可以帮我实现这段代码吗?

2 个答案:

答案 0 :(得分:3)

这不是一个单一的空间,但无论如何......

Collections.sort(yourList, new Comparator<String>() {
    public int compare(String s1, String s2) {
        double d1 = Double.valueOf(s1.substring(s1.lastIndexOf(' ') + 1));
        double d2 = Double.valueOf(s2.substring(s2.lastIndexOf(' ') + 1));
        return Double.compare(d1, d2);
    }
});

(导入java.util.Collections和java.util.Comparator,如果还没有。)

答案 1 :(得分:0)

如果您知道该号码将始终为X.XXXX(五位数和十进制)格式,您可以执行类似'

的操作
String asString = yourString.substring(yourString.length-9,yourString.length-3);
Double asDouble = Double.parseDouble(number);