StringJoiner的使用
需求:
我需要在代码中组装员工工号并用”|“分割,
去组装正则表达式去作为ES的正则匹配参数
例如:
123456|654321|123456
原方法:使用StringBuilder
需要自己造轮子,并且最后一个|需要手动去除
/**
* 造工号列表
* @return
*/
private static Set<String> initEmpCode(){
HashSet<String> empCodeSet = new HashSet<>();
empCodeSet.add("123456");
empCodeSet.add("654321");
empCodeSet.add("887654");
return empCodeSet;
}
/**
* 原有的使用StringBuilder
* 需要手动加分割符号
* 并且最后一个得手动清除
*/
private static void original() {
Set<String> empCodes = initEmpCode();
StringBuilder sb = new StringBuilder();
for (String empCode : empCodes) {
sb.append(empCode);
sb.append("|");
}
// 为了删除最后一个多余的"|"
sb.deleteCharAt(sb.length() - 1);
System.out.println(sb.toString());
}
输出:
887654|123456|654321
解决:使用StringJoiner已经造好的轮子
/**
* new StringJoiner时候初始化分割符即可
*/
private static void optimized() {
Set<String> empCodes = initEmpCode();
StringJoiner joiner = new StringJoiner("|");
for (String empCode : empCodes) {
joiner.add(empCode);
}
System.out.println(joiner.toString());
}
输出:
887654|123456|654321