Das \s ist ein regulärer Ausdruck für Leerzeichen (bzw. Whitespace), das + dahinter bdeutet mindestens eines und beliebig viele, ein Stern würde keines oder beliebig viele bdeuten. trim() scheidet am Anfang und Ende des Strings Leerzeichen ab, split() teilt den String in Einzelstrings auf, wobei der reguläre Ausdruck das Trennzeichen der Einzelstrings definiert. Length() zählt die Einzelstrings, was du ja willst.
Würdest du der Zähler-Methode (Umlaute sollte man besser nicht in Namen verwenden) anstelle eines Stringobjects null übergeben gäbe es eine Assertion, davor schützt der erste Teil mit dem ?.