我有一个字符串数组,我已经从数据库中过滤了文件,并在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等中引用任何合适的库
干杯
这是我特别想要的最后一个元素
以下程序首先提取字符串元素的最后一个整数部分。然后通过比较它们来返回。
List<String> results = Arrays.asList("ABCD XYZ M1210", "ABCD XYZ M149",
"ABCD XYZ M5130", "ABCD XYZ N1420", "ABCD XYZ T11299",
"ABCD XYZ S11044");
Collections.sort(results, new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
Integer x1 = Integer.parseInt(o1.substring(o1.lastIndexOf(" ")+2, o1.length()));
Integer x2 = Integer.parseInt(o2.substring(o2.lastIndexOf(" ")+2, o2.length()));
return x1.compareTo(x2);
}
});
System.out.println(results);
输出:
[ABCD XYZ M149,
ABCD XYZ M1210,
ABCD XYZ N1420,
ABCD XYZ M5130,
ABCD XYZ S11044,
ABCD XYZ T11299]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句