gpt4 book ai didi

java - 如何使用 Java 8 流考虑拆分字符串的第一个标记

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:43 24 4
gpt4 key购买 nike

我还是 java 8 的新手,我想像这样转换一个循环:

//result is List<String>
for(String elem:result) {
if(elem.contains(".")) {
elem = elem.split("\\.")[0];
}
}

到 java 8 流样式..我怎样才能做到这一点?

到目前为止我尝试了什么:

result.stream().map(String::split("\\.")[0]);

但它给出了编译错误,而且我也不知道如何处理这种情况

最佳答案

不要为每个元素编译一个模式(通过split),而是在循环之前创建它。此外,您似乎希望得到一个新的 List,大致如下:

 Pattern p = Pattern.compile("\\.");
List<String> out = result
.stream()
.map(x -> p.splitAsStream(x).findFirst().orElse(x))
.collect(Collectors.toList());

另一方面,如果您想就地进行:

 result.replaceAll(x -> p.splitAsStream(x).findFirst().orElse(x));

关于java - 如何使用 Java 8 流考虑拆分字符串的第一个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50604579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com