文件名类似:
1、xx
2、xxx
3、xxx
11、xxx
排序结果往往是:
1、xx
11、xxx
2、xx
3、xxx
这样的结果绝对是错的,以下通过正则以及 java 8 的流操作来正确排序:
// 正则获取排序字段
private int parseInt(ExpertCategoryNode f){
return Integer.parseInt(f.getCcName()
.replaceAll("(\\d)、.*","$1")
);
}
// 排序时便可以使用 来针对 1、开头进行排序
List<ExpertCategoryNode> sorted = node.getNodes().stream().sorted(Comparator.comparingInt(this::parseInt)).collect(Collectors.toList());