要求:字符串 “1.2.3.4.5 ” 输出List: 1; 1.2; 1.2.3;1.2.3.4;1.2.3.4.5
eg:1; 1.2; 1.2.3;1.2.3.4;1.2.3.4.5 分别对应 中国;上海市;静安区;共和新路街道;北宝兴路
/**
* @Title: 查询当前部门上面所有部门树,顺序从上级到下级部门
* @Author: ken
* @Description:
* @Date: 2021/6/8 10:09
* @Param: [orgNodePath]
* @return java.util.List<java.lang.String>
**/
public List<String> getAllOrganizationList(String orgNodePath) {
//若未传参,查询根目录
if (StringUtils.isEmpty(orgNodePath)) {
return Lists.newArrayList();
}
String orgNodePaths = orgNodePath + ".";
List indexList = getIndexes(orgNodePaths,'.');
List<String> orgList = Lists.newArrayList();
indexList.stream().forEach(t-> {
//System.out.println("indexList = "+ indexList);
//System.out.println(orgNodePaths.substring(0, (Integer) t));
orgList.add(orgNodePaths.substring(0, (Integer) t));
});
List<Long> orgIdLists = orgList.stream().map(Long::parseLong).collect(Collectors.toList());
BaseResponse<HashMap<String,List<ExamOrgsResponse>>> orgResponse = agencySvcClient.orgIdsInfo(orgIdLists);
HashMap<String,List<ExamOrgsResponse>> orgMap = orgResponse.getResult();
List<ExamOrgsResponse> orgResList = JSONArray.parseArray(JSONArray.toJSONString(orgMap.get("root")), ExamOrgsResponse.class);
return orgResList.stream().map(ExamOrgsResponse::getName).collect(Collectors.toList());
}
/**
* @Title: 获取分隔符的索引
* @Author: ken
* @Description:
* @Date: 2021/6/8 10:10
* @Param: [s, c]
* @return java.util.List
**/
public List getIndexes(String s, char c){
return IntStream.range(0, s.length()).filter(index -> s.charAt(index) == c).boxed().collect(Collectors.toList());
}
△ 若果大家有更好地实现方法欢迎私信我,一起进步