In Java, when working with strings, we may encounter situations where we need to split a string into smaller parts using multiple delimiters. The split()
method provided by the String
class splits the specified string based on a regular expression, making it a versatile tool for handling various delimiters. It returns an array of split strings after the method splits the given string around matches.
For using the multiple delimiters, the regular expression should define a character class that includes all the delimiters we want to split by.
The regular expression must be a valid pattern and we must remember to escape special characters if necessary.
String str = "how-to-do.in.java";
String[] strArray1 = str.split("-"); //[how, to, do.in.java] - 3 tokens
String[] strArray2 = str.split("-|\\."); //[how, to, do, in, java] - 5 tokens
1. The String split() Method
1.1. Syntax
The split()
method is overloaded and accepts the following parameters.
regex
– the delimiting regular expression.limit
– controls the number of times the pattern is applied and therefore affects the length of the resulting array.- If the limit is positive then the pattern will be applied at most limit – 1 times. The result array’s length will be no greater than limit, and the array’s last entry will contain all input beyond the last matched delimiter.
- If the limit is zero then the result array can be of any size. The trailing empty strings will be discarded.
- If the limit is negative then the result array can be of any size.
public String[] split(String regex);
public String[] split(String regex, int limit);
1.2. Throws PatternSyntaxException
Watch out that split()
throws PatternSyntaxException
if the regular expression’s syntax is invalid. In the given example, “[” is an invalid regular expression.
String[] strArray = "hello world".split("[");
Program output.
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
1.3. ‘null’ is Not Allowed
The method does not accept ‘null’ argument. It will throw NullPointerException in case the method argument is null.
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.split(String.java:2324)
at com.StringExample.main(StringExample.java:11)
2. Java Programs to Split a String
2.1. Split with Specified Delimiter
The following Java program splits a string based on a given delimiter hyphen "-"
.
String str = "how to do-in-java-provides-java-tutorials";
String[] strArray = str.split("-"); //[how to do, in, java, provides, java, tutorials]
2.2. Split by Whitespace
The following Java program splits a string by space using the delimiter "\\s"
. To split by all white space characters (spaces, tabs, etc.), use the delimiter “\\s+
“.
String str = "how to do injava";
String[] strArray = str.split("\\s"); //[how, to, to, injava]
2.3. Split by Comma
Java program to split a string by delimiter comma.
String str = "A,B,C,D";
String[] strArray = str.split(","); //[A,B,C,D]
2.4. Split by Multiple Delimiters
By using regular expressions and character classes in the regular expression, we can split a string based on multiple delimiters.
The following Java program splits a string with multiple delimiters, a hyphen and a dot. We are using regex OR operator '|'
symbol between multiple delimiters.
String str = "how-to-do.in.java";
String[] strArray = str.split("-|\\."); //[how, to, do, in, java]
3. Split a String into Maximum N tokens
This version of the method also splits the string, but the maximum number of tokens can not exceed limit
argument. After the method has found the number of tokens, the remaining unsplitted string is returned as the last token, even if it may contain the delimiters.
Below is a Java program to split a string by space in such a way the maximum number of tokens can not exceed 5
.
String str = "how to do in java provides java tutorials";
String[] strArray = str.split("\\s", 5);
System.out.println(strArray.length); //5
System.out.println(Arrays.toString(strArray)); //[how, to, do, in, java provides java tutorials]
4. Conclusion
This Java String tutorial taught us to use the syntax and usage of Spring.split() API, with easy-to-follow examples. We learned to split strings using different delimiters such as commas, hyphens, and even multiple delimiters in a String.
Happy Learning !!
Comments