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 :
- Using split() method of String class
- Using StringTokenizer class (not recommended)
- Using Patten.quote() method and split() method of String class
- Using Patten.compile() method and split() method of String class
- 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:
- Java – String split(String regex) method
- Java – String split(String regex, int limit) method
- Java – Split a String contents in 3 ways
- Java – How to split String based on space & dot(.) as delimiter ?
- Java – How to split String using pipe(|) as delimiter ?
Happy Coding !!
Happy Learning !!