In this article, we will discuss how to split a String using different delimiters and collect to any Collection or List or Set
Split a String & Collect to List/Set/Collection :
- Split a String using comma (,) as delimiter and collect to List using Collectors.toList();
 - Split a String using colon (:) as delimiter and collect to Set using Collectors.toSet();
 - Split a String using pipe (|) as delimiter and collect to any Collection using Collectors.toCollection();
 
1. Split a String using comma as delimiter & Collect to List :
- Initially, we got a String with comma-separated values
 - Inside Arrays.stream(), split a String using comma as delimiter using String’s split() method
 - Then map a split-ted String using Stream.map() method to remove white-spaces if any
 - Collect split-ted String to List using Stream’s collect() method passing Collectors.toList() as argument
 - Finally, iterate & print List to console using List.forEach() method
 
SplitStringAndCollectToListUsingJava8Stream.java
package in.bench.resources.split.string;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class SplitStringAndCollectToListUsingJava8Stream {
	public static void main(String[] args) {
		// original string
		String fruits = "Grapes, Apple, Mango, Banana, Orange, Melons";
		System.out.println("Original comma-separted String :- \n" + fruits);
		// split String based on comma
		List<String> fruitList = Arrays.stream(fruits.split("\\,")) // split on comma
				.map(str -> str.trim()) // remove white-spaces
				.collect(Collectors.toList()); // collect to List
		// print to console
		System.out.println("\nIterating & printing split-ted String from List :- ");
		fruitList.forEach(System.out::println);
	}
}
Output:
Original comma-separted String :- 
Grapes, Apple, Mango, Banana, Orange, Melons
Iterating & printing split-ted String from List :- 
Grapes
Apple
Mango
Banana
Orange
Melons
2. Split a String using colon as delimiter & Collect to Set :
- Initially, we got a String with colon-separated values
 - Inside Arrays.stream(), split a String using colon as delimiter using String’s split() method
 - Then map a split-ted String using Stream.map() method to remove white-spaces if any
 - Collect split-ted String to Set using Stream’s collect() method passing Collectors.toSet() as argument
 - Finally, iterate & print Set to console using Set.forEach() method
 
SplitStringAndCollectToSetUsingJava8Stream.java
package in.bench.resources.split.string;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
public class SplitStringAndCollectToSetUsingJava8Stream {
	public static void main(String[] args) {
		// original string
		String fruits = "Grapes:Apple:Mango:Banana:Orange:Melons";
		System.out.println("Original colon-separted String :- \n" + fruits);
		// split String based on comma
		Set<String> fruitList = Arrays.stream(fruits.split("\\:")) // split on colon
				.map(str -> str.trim()) // remove white-spaces
				.collect(Collectors.toSet()); // collect to Set
		// print to console
		System.out.println("\nIterating & printing split-ted String from Set :- ");
		fruitList.forEach(System.out::println);
	}
}
Output:
Original colon-separted String :- 
Grapes:Apple:Mango:Banana:Orange:Melons
Iterating & printing split-ted String from Set :- 
Apple
Grapes
Melons
Mango
Orange
Banana
3. Split a String using Pipe as delimiter & Collect to any Collection :
- Initially, we got a String with pipe-separated values
 - Inside Arrays.stream(), split a String using pipe as delimiter using String’s split() method
 - Then map a split-ted String using Stream.map() method to remove white-spaces if any
 - Collect split-ted String to any Collection classes using Stream’s collect() method passing Collectors.toCollection(TreeSet::new) as argument
 - Finally, iterate & print Collection to console using Set.forEach() method
 
SplitStringAndCollectToCollectionUsingJava8Stream.java
package in.bench.resources.split.string;
import java.util.Arrays;
import java.util.TreeSet;
import java.util.stream.Collectors;
public class SplitStringAndCollectToCollectionUsingJava8Stream {
	public static void main(String[] args) {
		// original string
		String fruits = "Grapes|Apple|Mango|Banana|Orange|Melons";
		System.out.println("Original pipe-separted String :- \n" + fruits);
		// split String based on comma
		TreeSet<String> fruitList = Arrays.stream(fruits.split("\\|")) // split on pipe
				.map(str -> str.trim()) // remove white-spaces
				.collect(Collectors.toCollection(TreeSet::new)); // collect to Collection
		// print to console
		System.out.println("\nIterating & printing split-ted String from Collection :- ");
		fruitList.forEach(System.out::println);
	}
}
Output:
Original pipe-separted String :- 
Grapes|Apple|Mango|Banana|Orange|Melons
Iterating & printing split-ted String from Collection :- 
Apple
Banana
Grapes
Mango
Melons
Orange
Related Articles :
- How to split String based on space & dot(.) as delimiter ?
 - How to split String using pipe(|) as delimiter ?
 - Java 8 – Reverse each words in a String using Stream and Collectors
 - Java 8 – Reverse complete/entire String using Stream and Collectors
 - Java 8 – Count and print number of lines and words in a text file
 - Java 8 – Count and print number of repeated word occurrences in a text file
 - Java 8 – Count and print number of repeated character occurrences in a String
 
References :
- https://www.benchresources.net/java-8-array-to-stream-conversion/
 - https://www.benchresources.net/various-ways-to-split-string-in-java-3-ways/
 - https://www.benchresources.net/java-how-to-split-string-using-pipe-delimiter/
 - https://www.benchresources.net/java-8-stream-map-method-with-examples/
 - https://www.benchresources.net/java-string-trim-method/
 - https://www.benchresources.net/iterating-list-using-foreach-in-java-8/
 - https://www.benchresources.net/iterating-set-using-foreach-in-java-8/
 - https://www.benchresources.net/java-8-stream-collect-method-with-examples/
 
Happy Coding !!
Happy Learning !!