In this guide, we will write a program to split a string by space in Java.
Java Program to split string by space
You can use \\s+ regex inside split string method to split the given string using whitespace. See the following example.
\s – Matches any white-space character. The extra backslash is to escape the sequence. The + at the end of \\s+ is to capture more than one consecutive spaces between words.
Complete Java code:
public class JavaExample{
  public static void main(String args[]){
    //a string with space
    String str = "This is just a text with space";
    //split the given string by using space as delimiter
    String[] strArray = str.split("\\s+");
    //prints substrings after split
    for(String s: strArray){
      System.out.println(s);
    }
  }
}
Output:

Splitting a string with Multiple Consecutive Spaces
You can also use the following regex inside the split method to split the given string.
str.split("[ ]")
However there is a difference between \\s+ and [  ] regex.
- \\s+: It consumes all the consecutive spaces and doesn’t produce empty substrings.
- [ ]: It splits the string when the first space is encountered, which means if there are multiple consecutive spaces then it would produce empty strings. See the following example:
public class JavaExample{
  public static void main(String args[]){
    //multiple consecutive whitespaces
    String str = "Test   String";
    //split using \\s+ regex
    String[] strArray = str.split("\\s+");
    for(int i=0; i<strArray.length; i++){
      System.out.println("strArray["+i+"]"+": "+strArray[i]);
    }
    //split using [ ] regex
    String[] strArray2 = str.split("[ ]");
    for(int i=0; i<strArray2.length; i++){
      System.out.println("strArray2["+i+"]"+": "+strArray2[i]);
    }
  }
}
Output:

Related guides: