我有一个字符串数组,我有来自数据库的 fileterd,在 Java 中有这样的输出
[ABCD XYZ M1210,
ABCD XYZ M149,
ABCD XYZ M5130,
ABCD XYZ N1420,
ABCD XYZ T11299,
ABCD XYZ S11044]
我希望按如下方式对我的数组进行排序:
[ABCD XYZ M149,
ABCD XYZ M1210,
ABCD XYZ M5130,
ABCD XYZ N1420,
ABCD XYZ S11044,
ABCD XYZ T11299]
这是我特别想要的最后一个元素
==> String theStringIWant = myStringArray.get(myStringArray.size() - 1);
我需要做的是先按字母顺序对“XYZ”后的字母进行排序,然后再按数字对字母进行排序,例如 ABCD XYZ M1210 < ABCD XYZ M5130 因为 5130 大于 1210。
如有任何帮助,我们将不胜感激
*任何对 java 等中合适的库的引用
干杯
最佳答案
Arrays.sort(array, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
String stringPart1 = extractStringPart(s1);
String stringPart2 = extractStringPart(s2);
int result = stringPart1.compare(stringPart2);
if (result == 0) {
int intPart1 = extractIntPart(s1);
int intPart2 = extractIntPart(s2);
result = Integer.compare(intPart1, intPart2);
}
return result;
}
});
两个提取方法留作练习。阅读 String 和/或 Matcher 的 javadoc 以了解您可以如何做。
关于java - 按字母排序字符串数组,然后按数字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983818/