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.

Click to Copy
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:

Click to Copy
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 :+.

Click to Copy
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("\\.").

Click to Copy
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.

Click to Copy
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:

Click to Copy
how.to.split.a.string.in.java

If the string consists of only the split character, the output will be an empty array.

Click to Copy
public class Main { public static void main(String[] arg) { String str = "::::"; String[] arrOfStr = str.split(":"); System.out.println(arrOfStr.length); } }

Output:

Click to Copy
0

Similarly, if you split an array on everything, the output will be nothing.

Click to Copy
public class Main { public static void main(String[] arg) { String str = "java"; String[] arrOfStr = str.split("."); System.out.println(arrOfStr.length); } }

Output:

Click to Copy
0

If you split an array on nothing, the output will be everything.

Click to Copy
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

Click to Copy
j a v a

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.