字符串类型排序,通过枚举进行单个维度多个维度排序
字符串类型进行排序通过定义枚举值实现
1.首先创建一个测试类,并实现main方法
2.如果是单个维度的排序,则按照顺序定义一个枚举
public enum Risk {高风险,中风险,一般风险,低风险
}
public static void main(String[] args) {
}
3.main方法里实现如下
String tips = "低风险,一般风险,高风险,中风险" ;
System.out.println("未进行处理原始字符串tips = " + tips);
String[] split = tips.split(","); //通过逗号分隔
// 通过Arrays.sort排序
Arrays.sort(split, Comparator.comparingInt(s -> Risk.valueOf(s).ordinal()));
System.out.println("输出排序后的字符串 = " + Arrays.toString(split));
4.输出执行结果
5.若排序是多个维度的,则同上,处理代码不变,将枚举值按照优先级有序的定义
public enum Risk02 {AA高风险,AA中风险,AA一般风险,AA低风险,BB高风险,BB中风险,BB一般风险,BB低风险
}
6.如果需要处理的字符串中有重复的值需要去重,完整代码如下
public enum Risk {AA高风险,AA中风险,AA一般风险,AA低风险,BB高风险,BB中风险,BB一般风险,BB低风险
}
public static void main(String[] args) {String tips = "BB低风险,AA一般风险,AA高风险,BB中风险,AA一般风险,AA高风险" ;System.out.println("未进行处理原始字符串tips = " + tips);String[] split = tips.split(","); //通过逗号分隔// 通过Arrays.sort排序Arrays.sort(split, Comparator.comparingInt(s -> Risk.valueOf(s).ordinal()));System.out.println("输出排序后的字符串 = " + Arrays.toString(split));String result = split[0];// 去重for (String s : split) {if (result.contains(s)){continue;}else {result = result.concat(",").concat(s); //追加}}System.out.println("去重后的字符串 = " + result);
}
7.执行结果输出