Ich bin ziemlich irritiert, wie die split-Methode der Klasse java.lang.String funktioniert.
Das entspricht der API-Doku, denn wenn es keinen Treffer gibt, wird einfach der gesamte String zurückgegeben, in diesem Fall der leere String.
Das ist schon etwas seltsamer, denn wenn man das Trennzeichen heraus nimmt, könnte man das als zwei Leere Strings betrachten (so macht es die Python-API). Aber wenn man dieses Verhalten akzeptiert, ist folgendes Ergebnis logisch:
Kurios wird es aber hier:
Warum sind das hier drei bzw. vier Strings? Das passt doch überhaupt nicht zu dem Ergebnis von "//", was 0 ist.
Code:
scala> "".split("/").length
res20: Int = 1
Code:
scala> "/".split("/").length
res21: Int = 0
Code:
scala> "//".split("/").length
res22: Int = 0
Kurios wird es aber hier:
Code:
scala> "//a".split("/").length
res16: Int = 3
scala> "///a".split("/").length
res19: Int = 4