使用完全自定义的多个规则对字符串列表进行排序

Filip123go:

我有一个这样的字符串列表:[8 ****,7 ****,73 ***,**** 1,** 101,* 4101、12010等]

我想按以下2条规则进行排序。

  • 第一条规则:仅使用最后一个数字/星号,排序应为:第一个星号,然后是数字1-9,然后是0。
  • 第二条规则:使用倒数第二个字符,排序应为:第一个星号,然后是数字0-9。

因此最终数组应变为:[7 ****,8 ****,73 ***,320 **,**** 1,** 101、12101]

我创建了一个自定义比较器,并分别获取每个字符:

public class MyCustomComparator implements Comparator<ObjToCompare> {


@Override
public int compare(ObjToCompare o1, ObjToCompare o2) {


    String lastSubstr1 = o1.getMyString.substring(o1.getMyString.length()-1);
    String lastSubstr2 = o2.getMyString.substring(o2.getMyString.length()-1);

    String secondFromLastSubstr1 =o1.getMyString.substring(o1.getMyString.length()-2,o1.getMyString().length()-1);
    String secondFromLastSubstr2 =o2.getMyString.substring(o2.getMyString.length()-2,o2.getMyString().length()-1);

    String thirdFromLastSubstr1 = o1.getMyString.substring(o1.getMyString.length()-3,o1.getMyString().length()-2);
    String thirdFromLastSubstr2 = o2.getMyString.substring(o2.getMyString.length()-3,o2.getMyString().length()-2);

    String fourthFromLastSubstr1 = o1.getMyString.substring(o1.getMyString.length()-4,o1.getMyString().length()-3);
    String fourthFromLastSubstr2 = o2.getMyString.substring(o2.getMyString.length()-4,o2.getMyString().length()-3);

    String fifthFromLastSubstr1 = o1.getMyString.substring(o1.getMyString.length()-5,o1.getMyString().length()-4);
    String fifthFromLastSubstr2 = o2.getMyString.substring(o2.getMyString.length()-5,o2.getMyString().length()-4);




    int last =  lastSubstr1.compareTo(lastSubstr2);



    return lastSubstr1.compareTo(lastSubstr2);
}}

如何实现以上逻辑?提前非常感谢您。

莎朗·本·阿舍(Sharon Ben Asher):

这是我的操作方式:创建两个Strings(两个规则)。每个都String按规则设置的顺序保存字符。例如:

String rule1Order = "*1234567890";

现在,字符串中字符的索引可以视为数字顺序值。索引之间的差异是期望的compareTo结果:

int lastSubstr1Ordervalue = rule1Order.indexOf(lastSubstr1); 
int lastSubstr2Ordervalue = rule1Order.indexOf(lastSubstr2); 
int lastSubstrCompareTo = lastSubstr1Ordervalue - lastSubstr2Ordervalue; 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过R中的自定义规则对字符串列表进行排序?

使用存储在另一个列表中的自定义顺序对字符串列表进行排序

验证字符串列表中的自定义排序

在颤动中自定义排序字符串列表

如何以自定义顺序对给定的字符串列表进行排序?

正确使用自定义排序键和文件字符串列表

如何根据给定的排序层次结构自定义对字符串列表的排序?

使用对象中包含的字符串对自定义对象列表进行排序

根据多个谓词对字符串列表进行排序

按多个参数对字符串列表进行排序

使用特定方法对字符串列表进行排序

使用比较器对字符串列表进行排序

PHP通过多个条件对字符串进行自定义排序数组

使用自定义排序顺序在Unix中对字母数字字符串进行排序

如何使用postgresql对字符串进行自定义排序的查询排序?

如何对字符串列表进行排序

如何对字符串列表进行排序?

如何将 Acumatica 字符串字段自定义为字符串列表?

使用自定义顺序对字符串数组进行排序

使用自定义比较器对字符串NSArray进行排序

如何使用字符串“ Date”成员对自定义对象的ListArray进行排序

使用自定义列表对Dataweave进行排序

如何将自定义类型列表转换为字符串列表

将字符串列表转换为自定义列表

自定义列表和字符串列表之间的区别

使用lambda函数按两个子字符串对字符串列表进行排序

以自定义方式对列表进行排序

无法使用多个字符串数组构建自定义列表视图

按数组中定义的顺序对字符串列表进行排序的有效方法?