Java中将逗号分隔字符串列表转换为List<List<Integer>>嵌套列表
你现有代码存在两处语法和逻辑缺失:
- 内层lambda表达式缺少闭合括号
- 外层字符串流处理完成后,没有调用
collect方法完成嵌套列表的最终收集
正确可运行的实现代码如下:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; // 业务逻辑部分 List<String> lines = getLines(s); List<List<Integer>> nestedList = lines.stream() // 每个字符串拆分为数字后转为内层Integer列表 .map(z -> Arrays.stream(z.split(",")) .map(Integer::parseInt) .collect(Collectors.toList()) ) // 所有内层列表收集为最终的嵌套列表 .collect(Collectors.toList());
针对你给出的示例输入{"1,2,3","1,1,1","7,6,5"},上述代码输出的嵌套列表完全符合预期结构。
可选优化:如果输入字符串可能存在空值、前后空格或非法格式,可增加过滤逻辑避免报错:
List<List<Integer>> nestedList = lines.stream() .map(z -> Arrays.stream(z.split(",")) // 过滤空串和空白内容 .filter(str -> !str.trim().isEmpty()) .map(Integer::parseInt) .collect(Collectors.toList()) ) .collect(Collectors.toList());
内容的提问来源于stack exchange,提问作者thomas1413
相关产品推荐
相关产品推荐

