Commit 6f357f4e authored by liaozan's avatar liaozan 🏀

StreamUtils support split

parent d57e4f9b
package com.schbrain.common.util; package com.schbrain.common.util;
import cn.hutool.core.text.StrPool;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
...@@ -138,16 +140,24 @@ public class StreamUtils { ...@@ -138,16 +140,24 @@ public class StreamUtils {
return stream.collect(groupingBy(keyMapper, mapSupplier, mapping(valueMapper, collector))); return stream.collect(groupingBy(keyMapper, mapSupplier, mapping(valueMapper, collector)));
} }
public static <T> String join(Iterable<T> data, CharSequence delimiter) { public static <T> String join(Iterable<T> data) {
return join(data, StrPool.COMMA);
}
public static <T> String join(Iterable<T> data, String delimiter) {
return join(data, delimiter, Objects::toString); return join(data, delimiter, Objects::toString);
} }
public static <T> String join(Iterable<T> data, CharSequence delimiter, Function<T, ? extends CharSequence> toStringFunction) { public static <T> String join(Iterable<T> data, String delimiter, Function<T, String> mapper) {
return join(data, delimiter, "", "", toStringFunction); return from(data).map(mapper).collect(joining(delimiter));
}
public static <T> List<T> split(String data, Function<String, T> mapper) {
return split(data, StrPool.COMMA, mapper);
} }
public static <T> String join(Iterable<T> data, CharSequence delimiter, String prefix, String suffix, Function<T, ? extends CharSequence> toStringFunction) { public static <T> List<T> split(String data, String delimiter, Function<String, T> mapper) {
return from(data).map(toStringFunction).collect(joining(delimiter, prefix, suffix)); return Arrays.stream(StringUtils.split(data, delimiter)).map(mapper).collect(Collectors.toList());
} }
public static <T> Stream<T> from(Iterable<T> iterable) { public static <T> Stream<T> from(Iterable<T> iterable) {
...@@ -159,4 +169,4 @@ public class StreamUtils { ...@@ -159,4 +169,4 @@ public class StreamUtils {
return StreamSupport.stream(source.spliterator(), parallel); return StreamSupport.stream(source.spliterator(), parallel);
} }
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment