Join our newsletter for the latest updates.

Java String split()

The Java String split() method divides the string at the specified regex and returns an array of substrings.

The syntax of the string split() method is:

string.split(String regex, int limit)

Here, string is an object of the String class.


split() Parameters

The string split() method can take two parameters:

  • regex - the string is divided at this regex (can be strings)
  • limit (optional) - controls the number of resulting substrings

If the limit parameter is not passed, split() returns all possible substrings.


split() Return Value

  • returns an array of substrings

Note: If the regular expression passed to split() is invalid, the split() method raises PatternSyntaxExpression exception.


Example 1: split() Without limit Parameter

// importing Arrays to convert array to string
// used for printing arrays
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a::b::c::d:e";

        // splitting the string at "::"
        // storing the result in an array of strings
        String[] result = vowels.split("::");

        // converting array to string and printing it
        System.out.println("result = " + Arrays.toString(result));
    }
}

Output

result = [a, b, c, d:e]

Here, we split the string at ::. Since the limit parameter is not passed, the returned array contains all the substrings.


split() With limit Parameter

  • If the limit parameter is 0 or negative, split() returns an array containing all substrings.
  • If the limit parameter is positive (let's say n), split() returns the maximum of n substrings.

Example 2: split() With limit Parameter

// importing Arrays to convert array to string
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a:bc:de:fg:h";

        // splitting array at ":"

        // limit is -2; array contins all substrings
        String[] result = vowels.split(":", -2);
        System.out.println("result when limit is -2 = " + Arrays.toString(result));

        // limit is 0; array contains all substrings
        result = vowels.split(":", 0);
        System.out.println("result when limit is 0 = " + Arrays.toString(result));

        // limit is 2; array contains a maximum of 2 substrings
        result = vowels.split(":", 2);
        System.out.println("result when limit is 2 = " + Arrays.toString(result));

        // limit is 4; array contains a maximum of 4 substrings
        result = vowels.split(":", 4);
        System.out.println("result when limit is 4 = " + Arrays.toString(result));

        // limit is 10; array contains a maximum of 10 substrings
        result = vowels.split(":", 10);
        System.out.println("result when limit is 10 = " + Arrays.toString(result));
    }
}

Output

result when limit is -2 = [a, bc, de, fg, h]
result when limit is 0 = [a, bc, de, fg, h]
result when limit is 2 = [a, bc:de:fg:h]
result when limit is 4 = [a, bc, de, fg:h]
result when limit is 10 = [a, bc, de, fg, h]

Note: The split() method takes regex as the first argument. If you need to use special characters such as: \, |, ^, *, + etc, you need to escape these characters. For example, we need to use \\+ to split at +.


Example 3: split() at the + character

// importing Arrays to convert array to string
// used for printing arrays
import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        String vowels = "a+e+f";

        // splitting the string at "+"
        String[] result = vowels.split("\\+");

        // converting array to string and printing it
        System.out.println("result = " + Arrays.toString(result));
    }
}

Output

result = [a, e, f]

Here, to split a string at +, we have used \\+. It's because + is a special character (has a special meaning in regular expressions).