如何将List中单个带格式字符串元素拆分为多个独立元素?
解决方案
你需要在现有流处理中加入字符串分割的步骤,通过flatMap将单个字符串拆分为多个元素,具体修改如下:
List<String> list = new ArrayList<>(); List<String> getRoles = buildRolesList(list, role).stream() .map(String::trim) .map(String::toLowerCase) .map(str -> str.replace("[", "")) .map(str -> str.replace("]", "")) // 新增:按逗号分割字符串,并将分割后的元素展开为流 .flatMap(str -> Arrays.stream(str.split(","))) // 对分割后的每个元素再次去除首尾空格(处理逗号后的空格) .map(String::trim) .collect(Collectors.toCollection(ArrayList::new));
关键步骤说明:
flatMap的作用:将单个字符串(如"admin, user")通过split(",")拆分为字符串数组,再转为流,把原本的1个元素扩展为多个元素的流。- 二次
trim:分割后的元素可能带有前后空格(比如" user"),再次调用trim()可去除多余空格,保证最终元素是干净的"admin"和"user"。
处理后getRoles会成为长度为2的List,索引0对应"admin"、索引1对应"user"。
内容的提问来源于stack exchange,提问作者Gojo
相关产品推荐
相关产品推荐

