Java – How to split String using pipe(|) delimiter ?

In this article, we will discuss different ways to split String using pipe(|) as delimiter in Java

Various ways to split String with pipe(|) as delimiter :

  1. Using split() method of String class
  2. Using StringTokenizer class (not recommended)
  3. Using Patten.quote() method and split() method of String class
  4. Using Patten.compile() method and split() method of String class
  5. Using Apache’s split() method of StringUtils class (commons-lang3)

Let us move forward and discuss all possible ways to split string in Java

1. Using split() method of String class

  • There are 2 variants for split() method and we are using 1st variant which takes regex
  • Regex to split String by pipe(|) delimiter = \\| i.e.; escape characters followed by pipe(|) character

SplitStringUsingPipeDelimiter.java

package net.bench.resources.split.string;

import java.util.Arrays;

public class SplitStringUsingPipeDelimiter {

	public static void main(String[] args) {


		// 1. string content
		String strWithPipe = "Bench|Resources|Net";


		// 2. use split() method of String class
		String[] splittedString = strWithPipe.split("\\|");


		// 3. iterate using enhanced for-loop
		System.out.println("1. Print splitted String iteratively : ");
		for(String word : splittedString) {

			// 3.1 print word one-by-one iteratively
			System.out.println(word);
		}


		// 4. Print splitted String in Arrays format
		System.out.println("\n\n2. Print splitted String in Array format : ");
		System.out.println(Arrays.toString(splittedString));
	}
}

Output :

1. Print splitted String iteratively : 
Bench
Resources
Net


2. Print splitted String in Array format : 
[Bench, Resources, Net]

2. Using StringTokenizer class

  • StringTokenizer constructor takes 2 parameters viz.; 1st is actual String to be splitted and 2nd is delimiter
  • We are using pipe(|) delimiter

SplitStringUsingStringTokenizer.java

package net.bench.resources.split.string;

import java.util.StringTokenizer;

public class SplitStringUsingStringTokenizer {

	public static void main(String[] args) {

		// 1. string content
		String strWithPipe = "Bench|Resources|Net";


		// 2. use StringTokenizer to split string content
		StringTokenizer tokens = 
				new StringTokenizer(strWithPipe, "\\|");


		// 3. iterate through tokens using while-loop
		System.out.println("1. Print splitted String iteratively : ");
		while(tokens.hasMoreTokens()) {

			// print token one-by-one iteratively
			System.out.println(tokens.nextToken());
		}
	}
}

Output :

1. Print splitted String iteratively : 
Bench
Resources
Net

3. Using Pattern.quote() and split() method of String class

  • We can use Pattern.quote(“|”) method to escape pipe(|) character and this can be used as delimiter to split String

SplitStringUsingPatternQuote.java

package net.bench.resources.split.string;

import java.util.Arrays;
import java.util.regex.Pattern;

public class SplitStringUsingPatternQuote {

	public static void main(String[] args) {


		// 1. string content
		String strWithPipe = "Bench|Resources|Net";


		// 2. use Pattern.quote and split() method of String class
		String[] splittedString = strWithPipe.split(Pattern.quote("|"));


		// 3. iterate using enhanced for-loop
		System.out.println("1. Print splitted String iteratively : ");
		for(String word : splittedString) {

			// 3.1 print word one-by-one iteratively
			System.out.println(word);
		}


		// 4. Print splitted String in Arrays format
		System.out.println("\n\n2. Print splitted String in Array format : ");
		System.out.println(Arrays.toString(splittedString));
	}
}

Output :

1. Print splitted String iteratively : 
Bench
Resources
Net


2. Print splitted String in Array format : 
[Bench, Resources, Net]

4. Using Pattern.compile() and split() method of String class

  • Similarly, we can use Pattern.compile(“\\|”) method as delimiter to split String

SplitStringUsingPatternCompile.java

package net.bench.resources.split.string;

import java.util.Arrays;
import java.util.regex.Pattern;

public class SplitStringUsingPatternCompile {

	public static void main(String[] args) {


		// 1. string content
		String strWithPipe = "Bench|Resources|Net";


		// 2. use Pattern.compile and split() method of String class
		String[] splittedString = Pattern.compile("\\|").split(strWithPipe);


		// 3. iterate using enhanced for-loop
		System.out.println("1. Print splitted String iteratively : ");
		for(String word : splittedString) {

			// 3.1 print word one-by-one iteratively
			System.out.println(word);
		}


		// 4. Print splitted String in Arrays format
		System.out.println("\n\n2. Print splitted String in Array format : ");
		System.out.println(Arrays.toString(splittedString));
	}
}

Output :

1. Print splitted String iteratively : 
Bench
Resources
Net


2. Print splitted String in Array format : 
[Bench, Resources, Net]

5. Using Apache’s split() method of StringUtils class

  • There are 4 variants of split() method in StringUtils class from Apache’s commons-lang3 jar
  • We are using 3rd variant which takes 2 input arguments viz.; 1st is actual String to be splitted and 2nd is delimiter
  • We are using pipe(|) delimiter for this demo example

SplitStringUsingStringUtils.java

package net.bench.resources.split.string;

import java.util.Arrays;

import org.apache.commons.lang3.StringUtils;

public class SplitStringUsingStringUtils {

	public static void main(String[] args) {


		// 1. string content
		String strWithPipe = "Bench|Resources|Net";


		// 2. use split() method of StringUtils class
		String[] splittedString = StringUtils.split(strWithPipe, "\\|");


		// 3. iterate using enhanced for-loop
		System.out.println("1. Print splitted String iteratively : ");
		for(String word : splittedString) {

			// 3.1 print word one-by-one iteratively
			System.out.println(word);
		}


		// 4. Print splitted String in Arrays format
		System.out.println("\n\n2. Print splitted String in Array format : ");
		System.out.println(Arrays.toString(splittedString));
	}
}

Output :

1. Print splitted String iteratively : 
Bench
Resources
Net


2. Print splitted String in Array format : 
[Bench, Resources, Net]

Hope, you found this article very helpful. If you any suggestion or want to contribute any other way or tricky situation you faced during Interview hours, then share with us. We will include that code here.

Related Articles:

Happy Coding !!
Happy Learning !!

Java - How to remove white-spaces in a String ?
Java - How to check whether 2 strings are Anagrams or Not