Java 使用 flatMap 过滤字符串分割后的空值
可以使用 Java 的 Stream API 来实现这个功能。首先,将字符串根据竖线分割成字符串数组,然后使用 flatMap 将数组中的每个元素转换为一个 Stream,最后使用 filter 过滤掉空值。
import java.util.Arrays;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
String str = 'abc|def||ghi|jkl||mno|pqr';
Stream<String> stream = Arrays.stream(str.split('\\|'))
.flatMap(s -> Arrays.stream(s.split('\\|'))) // 使用 flatMap 将每个元素转换为 Stream
.filter(s -> !s.isEmpty()); // 过滤掉空值
stream.forEach(System.out::println);
}
}
输出结果为:
abc
def
ghi
jkl
mno
pqr
在上述代码中,首先使用 str.split('\\|') 将字符串根据竖线分割成字符串数组,然后使用 Arrays.stream 将数组转换为一个 Stream。接着使用 flatMap 将数组中的每个元素转换为一个 Stream,这样就得到了一个包含所有分割后的字符串的 Stream。最后使用 filter 过滤掉空值,即字符串长度为 0 的元素。最终,使用 forEach 方法遍历输出每个非空字符串。
原文地址: https://www.cveoy.top/t/topic/fyYG 著作权归作者所有。请勿转载和采集!