Collectors.joining() 是 Java 8 中 Stream API 提供的一个收集器,它可以用来连接流中的元素成为一个字符串。joining() 主要用于将流中的元素转换为字符串形式,并且可以指定分隔符、前缀和后缀等。

下面是 Collectors.joining() 的几个重载版本:

  1. 无参数的 joining()

    Collector<T, StringBuilder, String> joining()
    

    这个版本会简单地将流中的元素连接起来,每个元素之间没有分隔符。

  2. 带分隔符的 joining(String delimiter)

    Collector<T, StringBuilder, String> joining(String delimiter)
    

    这个版本会在每个元素之间添加指定的分隔符。

  3. 带分隔符、前缀和后缀的 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]
    }
}

分析

  1. 无参数的 joining():

    String joined = names.stream()
            .collect(Collectors.joining());
    

    在这个例子中,流中的元素被直接连接在一起,没有添加任何额外字符。

  2. 带分隔符的 joining():

    String joined = names.stream()
            .collect(Collectors.joining(", "));
    

    在这个例子中,我们在每个元素之间添加了一个逗号和空格作为分隔符。

  3. 带分隔符、前缀和后缀的 joining():

    String joined = names.stream()
            .collect(Collectors.joining(", ", "[", "]"));
    

    在这个例子中,我们不仅添加了逗号和空格作为分隔符,还在整个字符串的开头添加了 [ 作为前缀,在结尾添加了 ] 作为后缀。

注意事项

  • 如果流为空,则 joining() 返回的字符串也为空。
  • 如果流中只有一个元素,则不会添加分隔符。
  • 如果指定了分隔符但没有元素,则返回的字符串不包含分隔符。

希望这些示例能帮助您更好地理解 Collectors.joining() 的用法。如果您有更具体的需求或者想要了解更多的细节,请随时提问!

Logo

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

更多推荐