我正在尝试将String[]流转换为String流。
例如:
{ "A", "B", "C" }, {"D, "E" } to "A", "B", "C", "D", "E"
这是我目前的代码:
Files.lines(Paths.get(file)).map(a -> a.split(" "));
Files.lines(path)
返回 Stream[String]
,我将每个字符串按照空格分割,获得一个包含所有单词的数组(现在是 Stream<String[]>
)。
我想将每个单词的数组展平成单独的元素,所以要得到 Stream[String]
而不是 Stream<String[]>
当我使用 flatMap 而不是 map 时,会出现错误: Type mismatch: cannot convert from String[] to Stream<? extends Object>
我认为 flatMap 是用于此目的的?如何最好地完成我想做的事情?
教授提出的问题:
使用流:编写一个按单词长度分类文件中单词的方法:
public static Map<Integer,List<String>> wordsByLength(String file)
throws IOException {
// COMPLETE THIS METHOD
}