Split a String in Java with Examples


Undoubtedly String class from java.lang package is the most widely used class in Java programming language. If you are creating a school or college project or even an enterprise-level project you would see this is the most instantiated object!

A very common scenario one might come across while working with String class is how to split a string?

Answer:

You can make use of the split method from the java.lang.String class.

Split method: public String[] split(String regex)

What does this method do? As you can see the split method takes in one argument of type String which is a regex (Regular Expression), so this method splits the string as per the provided regular expression.

Note that this method can throw a PatternSyntaxException if the regular expression syntax is not valid.

✌️ The spit(String regex) method was introduced in Java 1.4

Example 1. Split a String by comma (,)

Let's see an example, we have a String that is comma-separated containing names of Countries "USA, Japan, China, Austalia, Canada, Germany, France, Sweden, India, Sri Lanka, Russia, Poland" and we want to split this string by comma.

Code Snippet:
package com.code2care.java.tutorials;

public class JavaStringSplitExample {

	public static void main(String[] args) {

	String countries = "USA, Japan, China, Austalia, Canada, Germany, "
			+ "France, Sweden, India, Sri Lanka, Russia, Poland";

	String[] countriesArr = countries.split(",");

	for (String country : countriesArr) {
		System.out.println(country.trim());
	}
 }
}
Output:
USA
Japan
China
Austalia
Canada
Germany
France
Sweden
India
Sri Lanka
Russia
Poland

Example 2. Split a String by Slash (/)

Code Snippet:
String dataString = "11/22/2020";
String[] dateStringArr = dataString.split("/");
System.out.println("Date: " + dateStringArr[0]);
System.out.println("Month: " + dateStringArr[1]);
System.out.println("Year: " + dateStringArr[2]);
Output:
Date: 11
Month: 22
Year: 2020

Example 3. Split a String by Pipe (//|)

The first two examples we say worked by just passing the delimited as a string! Beware this will not work when the delimiter is a Pipe (you will get incorrect output) that's because the pipe has a special meaning in regEx, so you need to escape it using a backslash to use it as a character. Just add a double-slash \\ followed by |.

Code Snippet:
String operatingSystems = "macOS|Windows|Linux|Unix";
String[] operatingSystemsArr = operatingSystems.split("\\|");

for (String os : operatingSystemsArr) {
	System.out.println(os);
}
Output:
macOS
Windows
Linux
Unix

Example 4. Split a String by dot \\.)

Just like a pipe, the dot has a special meaning while using regEx so you need to escape it.

Code Snippet:
public static void main(String[] args) {

	String dataString = "111.2222.3333.4444";
	String[] dataStringArr = dataString.split("\\.");
	for (String data : dataStringArr) {
		System.out.println(data);
	}
}

Exception: java.util.regex.PatternSyntaxException:

If the provided regEx is invalid then you would see the below error stack,

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 0
${,}
^
	at java.base/java.util.regex.Pattern.error(Pattern.java:2027)
	at java.base/java.util.regex.Pattern.closure(Pattern.java:3320)
	at java.base/java.util.regex.Pattern.sequence(Pattern.java:2213)
	at java.base/java.util.regex.Pattern.expr(Pattern.java:2068)
	at java.base/java.util.regex.Pattern.compile(Pattern.java:1782)
	at java.base/java.util.regex.Pattern.<init>(Pattern.java:1428)
	at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
	at java.base/java.lang.String.split(String.java:2317)
	at java.base/java.lang.String.split(String.java:2364)
	at com.code2care.java.tutorials.JavaStringSplitExample.main(JavaStringSplitExample.java:8)
Java - Split a String with examples
Advertisements
Try Out Code2care Dev Tools:

Advertisements



Android Java Linux Microsoft Google Python macOS Notepad++ Microsoft Teams CSS PHP SharePoint Html Linux C Programs Bootstrap jQuery Sublime Android Studio Facebook Eclipse WhatsApp News MySQL Json HowTos JavaScript FTP S3


Advertisements


Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Tutorials, Trouble-Shooting steps, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.
🎉 We are celebrating the 10th years of Code2care! Thank you for all your support! We hope we made a difference.
We strong support Gender Equality & Diversity.

We stand in solidarity with Ukraine - Make a donation to UNHCR - https://donate.unhcr.org/in/en-in/ukraine-emergency