在java中,基于双精度值对字符串列表进行排序

在java中,基于双精度值对字符串列表进行排序,java,list,sorting,Java,List,Sorting,我有以下格式的字符串列表 ["BlahBlahBlahBlah 0.9877"] ["ABCabcABCabcAbc 1.7852"] 正如你所看到的,两者之间只有一个空间。由于某些限制,我无法更改设计 我需要做的是根据末尾的双倍数字对列表进行排序。 有人能帮我实现这个代码吗 如果您知道数字的格式始终为X.XXXX(五位数字和一个小数),您可以执行以下操作: String asString = yourString.substring(yourString.length-9,yourS

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

["BlahBlahBlahBlah   0.9877"]
["ABCabcABCabcAbc   1.7852"]
正如你所看到的,两者之间只有一个空间。由于某些限制,我无法更改设计

我需要做的是根据末尾的双倍数字对列表进行排序。
有人能帮我实现这个代码吗

如果您知道数字的格式始终为X.XXXX(五位数字和一个小数),您可以执行以下操作:

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

如果您知道数字的格式始终为X.XXXX(五位数字和一个小数),您可以执行以下操作:

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

如果您知道数字的格式始终为X.XXXX(五位数字和一个小数),您可以执行以下操作:

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

如果您知道数字的格式始终为X.XXXX(五位数字和一个小数),您可以执行以下操作:

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

那不是一个单独的空间,但无论如何

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);
    }
});
Collections.sort(yourList,newcomparator(){
公共整数比较(字符串s1、字符串s2){
double d1=double.valueOf(s1.子字符串(s1.lastIndexOf(“”)+1));
double d2=double.valueOf(s2.子字符串(s2.lastIndexOf(“”)+1));
返回双重比较(d1,d2);
}
});

(如果尚未导入java.util.Collections和java.util.Comparator。)

这不是一个单独的空格,但无论如何

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);
    }
});
Collections.sort(yourList,newcomparator(){
公共整数比较(字符串s1、字符串s2){
double d1=double.valueOf(s1.子字符串(s1.lastIndexOf(“”)+1));
double d2=double.valueOf(s2.子字符串(s2.lastIndexOf(“”)+1));
返回双重比较(d1,d2);
}
});

(如果尚未导入java.util.Collections和java.util.Comparator。)

这不是一个单独的空格,但无论如何

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);
    }
});
Collections.sort(yourList,newcomparator(){
公共整数比较(字符串s1、字符串s2){
double d1=double.valueOf(s1.子字符串(s1.lastIndexOf(“”)+1));
double d2=double.valueOf(s2.子字符串(s2.lastIndexOf(“”)+1));
返回双重比较(d1,d2);
}
});

(如果尚未导入java.util.Collections和java.util.Comparator。)

这不是一个单独的空格,但无论如何

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);
    }
});
Collections.sort(yourList,newcomparator(){
公共整数比较(字符串s1、字符串s2){
double d1=double.valueOf(s1.子字符串(s1.lastIndexOf(“”)+1));
double d2=double.valueOf(s2.子字符串(s2.lastIndexOf(“”)+1));
返回双重比较(d1,d2);
}
});

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

实现一个只查看双精度值的自定义
比较器。这是一种习惯(也是很好的形式),用于显示您尝试过的内容并提出特定问题。否则,看起来你只是希望有人为你工作。请投入一些精力。实现一个自定义的
比较器
,它只查看双精度值。这是一种习惯(也是一种很好的形式),用于显示您尝试过的内容并提出特定的问题。否则,看起来你只是希望有人为你工作。请投入一些精力。实现一个自定义的
比较器
,它只查看双精度值。这是一种习惯(也是一种很好的形式),用于显示您尝试过的内容并提出特定的问题。否则,看起来你只是希望有人为你工作。请投入一些精力。实现一个自定义的
比较器
,它只查看双精度值。这是一种习惯(也是一种很好的形式),用于显示您尝试过的内容并提出特定的问题。否则,看起来你只是希望有人为你工作。请投入一些精力。根据列表大小,由于额外的n*(logn-1)字符串到双精度转换,这可能是非常浪费的。根据列表大小,由于额外的n*(logn-1)字符串到双精度转换,这可能是非常浪费的。根据列表大小,由于额外的n*(logn-1)字符串到双精度转换,这可能是非常浪费的字符串到双精度转换。根据列表大小,由于额外的n*(logn-1)字符串到双精度转换,这可能是非常浪费的。