Как именно работает метод String.split () в Java, когда предоставляется регулярное выражение?

Я готовлюсь к экзамену OCPJP и натолкнулся на следующий пример:

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);
   }
}

Этот код печатает 16. Я ожидал что-то вроде no_of_characters + 1. Может кто-нибудь объяснить мне, что на самом деле делает метод split () в этом случае? Я просто не понимаю ...

Ответы на вопрос(1)

Ваш ответ на вопрос