The split()
method divides the string at the specified regex and returns an array of substrings.
Example
class Main {
public static void main(String[] args) {
String text = "Java is a fun programming language";
// split string from space
String[] result = text.split(" ");
System.out.print("result = ");
for (String str : result) {
System.out.print(str + ", ");
}
}
}
// Output: result = Java, is, a, fun, programming, language,
Syntax of String split()
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 sayn
),split()
returns the maximum ofn
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 contains 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).