gpt4 book ai didi

Java 8过滤器但返回所有对象

转载 作者:行者123 更新时间:2023-12-02 11:24:03 26 4
gpt4 key购买 nike

我需要找到大于5个字符的单词,然后将其反转。这样的代码工作正常:

public class SpinWords {

private Function<String, String> reverse = s -> new StringBuilder(s).reverse().toString();


public String spinWords(String sentence) {

String whitespace = " ";

List<String> split = Arrays.asList(sentence.split(whitespace));

return split.stream().map(s -> {

if (s.length() > 5) {
s = reverse.apply(s);
}

return s;
}).collect(Collectors.joining(whitespace));

}

}

但是由于我现在正在学习 java 8,我想将此 is 语句替换为不带大括号的流,但使用 java 8 替代方案。是否可能或此代码有效?

最佳答案

您可以使用三元条件运算符:

return split.stream()
.map(s -> s.length() > 5 ? reverse.apply(s) : s)
.collect(Collectors.joining(whitespace));

编辑:正如 Naman 所建议的,整个方法可以简化为单个语句:

public String spinWords(String sentence) {
return Arrays.stream(sentence.split(" "))
.map(s -> s.length() > 5 ? reverse.apply(s) : s)
.collect(Collectors.joining(" "));
}

关于Java 8过滤器但返回所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58854428/

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