Como exatamente o método String.split () em Java funciona quando o regex é fornecido?

Estou me preparando para o exame OCPJP e me deparei com o seguinte exemplo:

class Test {
   public static void main(String args[]) {
      String test = "I am preparing for OCPJP";
      String[] tokens = test.split("\\S");
      System.out.println(tokens.length);
   }
}

Esse código imprime 16. Eu esperava algo como no_of_characters + 1. Alguém pode me explicar, o que o método split () realmente faz neste caso? Eu simplesmente não entendo ...

questionAnswers(1)

yourAnswerToTheQuestion