java 使用java 8进行字符串处理的有趣示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 使用java 8进行字符串处理的有趣示例相关的知识,希望对你有一定的参考价值。
package Java_FP.collection;
import java.util.Arrays;
import java.util.Optional;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Stream;
/**
* Created by liuyufei on 19/10/16.
*/
public class CollectionExample_8 {
final static String[] food = new String[]{
"Crunchy carrots",
"Golden-hued bananas",
"",
"Bright orange pumpkins",
"Little trees of broccoli",
"meat"
};
public static final Predicate<String> NON_EMPTY = s -> !s.isEmpty();
//just return the last element, ignore the previous ones
private static BinaryOperator<String> chooseLast = (allSoFar,nextElement)-> nextElement;
private static Function<String,String> lastWord =
phrase -> Arrays.asList(phrase.split(" ")).stream().reduce(chooseLast).orElse("");
private static BinaryOperator<String> joinOn(String connector) {
return (allSoFar, nextElement) -> allSoFar + connector + nextElement;
}
private static String summarize(final String[] description) {
return Arrays.asList(description).stream()
.filter(NON_EMPTY)
.map(lastWord)
.reduce(joinOn(" & "))
.orElse("");
//avoid null pointer exception, if allTogetherNow is empty, "" will be returned
}
public static void main(String[] args) {
final String summary = summarize(food);
final String desiredSummary =
"carrots & bananas & pumpkins & broccoli & meat";
System.out.println(summary);
if (summary.equals(desiredSummary)) System.out.println("yay!");
}
}
以上是关于java 使用java 8进行字符串处理的有趣示例的主要内容,如果未能解决你的问题,请参考以下文章
jdk 8 lambda表达式 及在Android Studio的使用示例
java 如何对中英文和符号数字混合的字符串进行截取,其中包含各种括号( ( [ < >] ) )?
Java 8 时间日期库的20个使用示例
Java 8 Stream入门
Java 8 Stream入门
Java 8新的时间日期库的20个使用示例