public static String getNumber(String regular) {
int index = 0;
for (int i = 0; i < regular.length(); i++) {
char c = regular.charAt(i);
if (Character.isDigit(c)) {
if (i == regular.length() - 1) {
index = i + 1;
} else {
index = i;
}
continue;
} else {
index = i;
break;
}
}
return regular.substring(0, index);
}
//自定义排序
list.sort((o1, o2) -> {
String moduleIndexOne = o1.getString("MODULE_INDEX");
String contentOne = NumberUtil.getNumber(o1.getString("CONTENT")); //取数字部分
String moduleIndexTwo = o2.getString("MODULE_INDEX");
String contentTwo = NumberUtil.getNumber(o2.getString("CONTENT")); //取数字部分
if (moduleIndexOne.equals(moduleIndexTwo)) {
if ("".equals(contentOne) || "".equals(contentTwo)) {
// 某个模块没有数字,算是相等,顺序不动
return 0;
} else {
// 升序排序
return Integer.parseInt(contentOne) < Integer.parseInt(contentTwo) ? -1 : 1;
}
}
return 0;
});