How to split a string in Java

Kudzanai T.
—The Problem
How do I split a String in Java?
The Solution
The easiest way to split a string in Java is to use the String.split() method.
public class Main { public static void main(String[] arg) { String str = "how:to:split:a:string:in:java"; String[] arrOfStr = str.split(":"); for (String a : arrOfStr) { System.out.println(a); } } }
Output:
how to split a string in java
In the example above, we use : as the delimiter, but note that the parameter the split() method takes is a regular expression. This means it is easy to do things like split on one or more : characters by using :+.
public class Main { public static void main(String[] arg) { String str = "how:to::split:::a:string:in:java"; String[] arrOfStr = str.split(":+"); for (String a : arrOfStr) { System.out.println(a); } } }
The output of this example will be the same as the output of the previous example, as the regex ignores the additional colons.
This means that if you want to split a string on a character that has special meaning in regular expressions, you need to escape it. For example, to split a string on a period (.), use str.split("\\.").
public class Main { public static void main(String[] arg) { String str = "how.to.split.a.string.in.java"; String[] arrOfStr = str.split("\\."); for (String a : arrOfStr) { System.out.println(a); } } }
This example also has the same output as the previous examples.
Edge cases in Java String Splitting
If the split character is not present in the target string, the output will be an array with one element containing the entire string.
public class Main { public static void main(String[] arg) { String str = "how.to.split.a.string.in.java"; String[] arrOfStr = str.split("z"); for (String a : arrOfStr) { System.out.println(a); } } }
Output:
how.to.split.a.string.in.java
If the string consists of only the split character, the output will be an empty array.
public class Main { public static void main(String[] arg) { String str = "::::"; String[] arrOfStr = str.split(":"); System.out.println(arrOfStr.length); } }
Output:
0
Similarly, if you split an array on everything, the output will be nothing.
public class Main { public static void main(String[] arg) { String str = "java"; String[] arrOfStr = str.split("."); System.out.println(arrOfStr.length); } }
Output:
0
If you split an array on nothing, the output will be everything.
public class Main { public static void main(String[] arg) { String str = "java"; String[] arrOfStr = str.split(""); for (String a : arrOfStr) { System.out.println(a); } } }
Output
j a v a
- Sentry BlogException Handling in Java (with Real Examples) (opens in a new tab)
- Syntax.fmListen to the Syntax Podcast (opens in a new tab)
- Listen to the Syntax Podcast (opens in a new tab)
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
