【发布时间】:2023-03-27 14:35:01
【问题描述】:
我有一个 CSV 文件,我从该文件中读取多个列(基于用户输入)为 List<String>,并希望生成一个 List<String>,这样新的 List 的每个元素都是相应元素的串联在以“_”分隔的个人Lists 中。
这意味着生成的 List<String> 的大小与每个 List 的大小相同。
例如
文件
col1A、col2A、col3A
col1B、col2B、col3B
用户输入(范围:1 到文件中的最大列数)
2,3
输出:包含内容的列表
["col2A_col3A", "col2B_col3B"]
更喜欢使用 Streams 的功能解决方案。
尝试写一个单行:
Arrays.stream("2,3".split(",")
.map(Integer::parseInt)
.map(idx -> colProcessor.getColumn(idx)) // colProcessor.getColumn(idx) returns column with index 'idx' as List<String>
.collect(Collectors.toList());
但是,这会将 2 列连接成一个大小为 2*<size of each column> 的 List,这不是预期的目标。
【问题讨论】:
-
您好,请阅读minimal reproducible example。并提供您目前编写的代码以及您面临的问题。
-
您发布了代码要求,但我没有看到阻止您编写自己的代码的问题描述。请edit您的问题并包括您的尝试/研究。
-
更新了问题。让我知道这是否有意义。谢谢!
-
我不明白为什么人们坚持
Streams并强迫他们解决他们天生不适合的问题。我的意思是,你可能可以用Stream来做,但我敢肯定它看起来会很不愉快。
标签: java functional-programming java-8 java-stream