Java 8 - Collectors.joining() 详解
是 Java 8 中 Stream API 提供的一个收集器,它可以用来连接流中的元素成为一个字符串。joining()主要用于将流中的元素转换为字符串形式,并且可以指定分隔符、前缀和后缀等。下面是joining()这个版本会简单地将流中的元素连接起来,每个元素之间没有分隔符。这个版本会在每个元素之间添加指定的分隔符。这个版本除了分隔符之外,还可以为最终的字符串添加前缀和后缀。下面通过一些示例来展
Collectors.joining()
是 Java 8 中 Stream API 提供的一个收集器,它可以用来连接流中的元素成为一个字符串。joining()
主要用于将流中的元素转换为字符串形式,并且可以指定分隔符、前缀和后缀等。
下面是 Collectors.joining()
的几个重载版本:
-
无参数的
joining()
:Collector<T, StringBuilder, String> joining()
这个版本会简单地将流中的元素连接起来,每个元素之间没有分隔符。
-
带分隔符的
joining(String delimiter)
:Collector<T, StringBuilder, String> joining(String delimiter)
这个版本会在每个元素之间添加指定的分隔符。
-
带分隔符、前缀和后缀的
joining(String delimiter, String prefix, String suffix)
:Collector<T, StringBuilder, String> joining(String delimiter, String prefix, String suffix)
这个版本除了分隔符之外,还可以为最终的字符串添加前缀和后缀。
下面通过一些示例来展示 Collectors.joining()
的用法。
示例代码
假设我们有一个字符串列表,我们想要将它们连接成一个字符串。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class JoiningExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Diana");
// 无参数的 joining()
String joined = names.stream()
.collect(Collectors.joining());
System.out.println(joined); // 输出 AliceBobCharlieDiana
// 带分隔符的 joining()
joined = names.stream()
.collect(Collectors.joining(", "));
System.out.println(joined); // 输出 Alice, Bob, Charlie, Diana
// 带分隔符、前缀和后缀的 joining()
joined = names.stream()
.collect(Collectors.joining(", ", "[", "]"));
System.out.println(joined); // 输出 [Alice, Bob, Charlie, Diana]
}
}
分析
-
无参数的
joining()
:String joined = names.stream() .collect(Collectors.joining());
在这个例子中,流中的元素被直接连接在一起,没有添加任何额外字符。
-
带分隔符的
joining()
:String joined = names.stream() .collect(Collectors.joining(", "));
在这个例子中,我们在每个元素之间添加了一个逗号和空格作为分隔符。
-
带分隔符、前缀和后缀的
joining()
:String joined = names.stream() .collect(Collectors.joining(", ", "[", "]"));
在这个例子中,我们不仅添加了逗号和空格作为分隔符,还在整个字符串的开头添加了
[
作为前缀,在结尾添加了]
作为后缀。
注意事项
- 如果流为空,则
joining()
返回的字符串也为空。 - 如果流中只有一个元素,则不会添加分隔符。
- 如果指定了分隔符但没有元素,则返回的字符串不包含分隔符。
希望这些示例能帮助您更好地理解 Collectors.joining()
的用法。如果您有更具体的需求或者想要了解更多的细节,请随时提问!

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)