次の形式の文字列のリストがあります
["BlahBlahBlahBlah 0.9877"]
["ABCabcABCabcAbc 1.7852"]
ご覧のとおり、2 つの間には 1 つのスペースがあります。諸事情によりデザインの変更はできません。
私がする必要があるのは、最後の二重数に基づいてリストをソートすることです。このコードの実装を手伝ってくれる人はいますか?
それは単一のスペースではありませんが、とにかく...
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 をインポートします。)
数値が常に X.XXXX (5 桁と 10 進数) の形式になることがわかっている場合は、次のようなことができます。
String asString = yourString.substring(yourString.length-9,yourString.length-3);
Double asDouble = Double.parseDouble(number);