我有一个包含以下条目的字符串数组:
Array[0] = "70% Marc"
Array[1] = "50% Marc"
Array[2] = "100% Marc"
Array[3] = "20% Marc"
我想对这个数组进行降序排序。
当我使用 Arrays.sort(Array)
时,它会按降序排序,但 100% Marc
位于底部(因为它只查看第一个字符进行排序).我希望它像这样排序:
"100% Marc"
"70% Marc"
"50% Marc"
"20% Marc"
我该怎么做?
最佳答案
编写您自己的 CustomStringComparator
并将其与排序方法一起使用。
public class CustomStringComparator implements Comparator<String>{
@Override
public int compare(String str1, String str2) {
// extract numeric portion out of the string and convert them to int
// and compare them, roughly something like this
int num1 = Integer.parseInt(str1.substring(0, str1.indexOf("%") - 1));
int num2 = Integer.parseInt(str2.substring(0, str2.indexOf("%") - 1));
return num1 - num2;
}
}
关于Java:以数字方式对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348223/