我的数组包含如下所示的项目:
"item_name_1::item_description::item_value"
(因此数组中的每个项目都包含单独的数据 fragment ,这些数据稍后会在“::”处拆分)
我的问题是,我如何按“ITEM_VALUE”(这是一个数值)对数组进行排序,我尝试了以下方法,但没有成功:
Arrays.sort(inputArr, new Comparator<String>() {
@Override
public int compare(String entry1, String entry2) {
String[] entry1Split = entry1.split("::");
String[] entry2Split = entry2.split("::");
return entry1Split[2].compareTo(entry2Split[2]);
}
});
最佳答案
你应该能够做到这一点:
Arrays.sort(inputArr, new Comparator<String>() {
@Override
public int compare(String entry1, String entry2) {
String[] entry1Split = entry1.split("::");
String[] entry2Split = entry2.split("::");
return Double.valueOf(entry1Split[2]).compareTo(Double.valueOf(entry2Split[2]));
}
});
也就是说,如果您的数值是浮点值。如果它们是整数,您可以使用 Integer.valueOf
而不是 Double.valueOf
。
关于java - 按项目子字符串对数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307697/