📜  Java 8 流 |带有示例的 Collectors.joining() 方法

📅  最后修改于: 2022-05-13 01:55:02.613000             🧑  作者: Mango

Java 8 流 |带有示例的 Collectors.joining() 方法

Java中 Collectors 类的 join ()方法用于将字符或字符串组的各种元素连接成单个字符串对象。此方法使用流来执行此操作。 Collector 类中存在多种连接方法的重载。

类层次结构:

java.lang.Object
  ↳ java.util.stream.Collectors

加入()

Java.util.stream.Collectors.joining()是最简单的加入方法,不带任何参数。它返回一个收集器,该收集器按照出现的顺序将输入流连接或连接成字符串。

句法:

public static Collector joining()

下面是如何使用 join() 方法的说明:

程序 1:使用带有字符数组的 join() :

在下面的程序中,在 'ch' 中创建了一个字符数组。然后使用 Stream.of() 将该数组输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符数组的顺序流连接成一个字符串。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character array
        char[] ch = { 'G', 'e', 'e', 'k', 's',
                      'f', 'o', 'r',
                      'G', 'e', 'e', 'k', 's' };
  
        // Convert the character array into String
        // using Collectors.joining() method
        String chString = Stream.of(ch)
                              .map(arr -> new String(arr))
                              .collect(Collectors.joining());
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

GeeksforGeeks

程序 2:使用带有字符列表的 join() :

在下面的程序中,在“ch”中创建了一个字符列表。然后使用 ch.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List ch = Arrays.asList('G', 'e', 'e', 'k', 's',
                                           'f', 'o', 'r',
                                           'G', 'e', 'e', 'k', 's');
  
        // Convert the character list into String
        // using Collectors.joining() method
        String chString = ch.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining());
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

GeeksforGeeks

程序 3:使用带有 n 个字符串列表的 join() :

在下面的程序中,在“str”中创建了一个字符串列表。然后使用 str.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List str = Arrays.asList("Geeks", "for", "Geeks");
  
        // Convert the character list into String
        // using Collectors.joining() method
        String chString = str.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining());
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

GeeksforGeeks

加入(分隔符)

Java.util.stream.Collectors.joining(CharSequence delimiter)是 join() 方法的重载,它以 delimiter 作为参数,类型为 CharSequence。定界符是用于将单词彼此分隔的符号或 CharSequence。例如,在每个句子中,空格“ ”默认用作其中单词的分隔符。它返回一个收集器,该收集器按照出现的顺序将输入元素连接或连接成字符串,由分隔符分隔。

句法:

public static Collector joining(CharSequence delimiter)

下面是如何使用 join(delimiter) 方法的说明:

程序 1:使用带有字符列表的连接(分隔符):

在下面的程序中,在“ch”中创建了一个字符列表。然后使用 ch.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串,其中“,”作为分隔符传递。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List ch = Arrays.asList('G', 'e', 'e', 'k', 's',
                                           'f', 'o', 'r',
                                           'G', 'e', 'e', 'k', 's');
  
        // Convert the character list into String
        // using Collectors.joining() method
        // with, as the delimiter
        String chString = ch.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining(", "));
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

G, e, e, k, s, f, o, r, G, e, e, k, s

程序 2:使用 join(delimiter) 和字符串列表:

在下面的程序中,在“str”中创建了一个字符串列表。然后使用 str.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串,其中“,”作为分隔符传递。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List str = Arrays.asList("Geeks", "for", "Geeks");
  
        // Convert the character list into String
        // using Collectors.joining() method
        String chString = str.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining(", "));
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

Geeks, for, Geeks

加入(分隔符、前缀、后缀)

Java.util.stream.Collectors.joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)是join() 方法的重载,它以CharSequence 类型的分隔符、前缀和后缀为参数。

定界符是用于将单词彼此分隔的符号或 CharSequence。前缀是在字符串的第一个元素的开头连接的符号或 CharSequence。然后 suffix 也是一个 CharSequence 参数,但它是在字符串的最后一个元素之后加入的。即最后。

例如,在每个 {Geeks, for, Geeks} 中,空格“ ”默认用作其中单词的分隔符。 '{' 是前缀,'}' 是后缀。它返回一个收集器,该收集器按照出现的顺序将输入元素连接或连接成字符串,由分隔符分隔。

句法:

public static Collector joining(CharSequence delimiter. 
                                                       CharSequence prefix,
                                                       CharSequence suffix))

下面是如何使用join(delimiter, prefix, suffix)方法的说明:

程序 1:使用带有字符列表的 join() :

在下面的程序中,在“ch”中创建了一个字符列表。然后使用 ch.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串,其中“,”作为分隔符传递,“[”作为前缀,“]”作为后缀。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List ch = Arrays.asList('G', 'e', 'e', 'k', 's',
                                           'f', 'o', 'r',
                                           'G', 'e', 'e', 'k', 's');
  
        // Convert the character list into String
        // using Collectors.joining() method
        // with, as the delimiter
        String chString = ch.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining(", ", "[", "]"));
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

[G, e, e, k, s, f, o, r, G, e, e, k, s]

程序 2:使用 join() 和字符串列表:

在下面的程序中,在“str”中创建了一个字符串列表。然后使用 str.stream() 方法将此列表输入以转换为 Stream。然后使用 map() 将结果流映射为顺序序列。最后,使用 Collectors.joining() 方法将包含字符列表的顺序流连接成一个字符串,其中“,”作为分隔符传递,“{”作为前缀,“}”作为后缀。它存储在“chString”变量中。

// Java Program to demonstrate the working
// of the Collectors.joining() method
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Arrays;
import java.util.List;
  
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List str = Arrays.asList("Geeks", "for", "Geeks");
  
        // Convert the character list into String
        // using Collectors.joining() method
        String chString = str.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining(", ", "{", "}"));
  
        // Print the concatenated String
        System.out.println(chString);
    }
}

输出:

{Geeks, for, Geeks}