Ich möchte eine beliebige Zeichenfolge verwenden und sie basierend auf sich wiederholenden Zeichen aufteilen.
Wenn ich zum Beispiel die Zeichenfolge abcaaabbc
eingeben würde, würde ich ein Array von Strings ausgeben, die gleich sind: [abca, a, ab, bc]
. Jedes Mal, wenn ein Zeichen wiederholt wird, möchte ich eine neue Zeichenfolge beginnen.
Natürlich ist das mit einer Schleife möglich, aber ich frage mich, ob ich das mit der Methode String.split()
erreichen kann. Wenn ja - wie groß wäre die RegEx
?
Tokeniere die Eingabezeichenfolge, wobei das vorherige Zeichen (Look-Back (?<=(.))
) das gleiche ist wie das nächste Zeichen (Look-ahead (?=\1)
) und captures
(.)
.
Aus Performance-Sicht würde ich bei einer Schleife bleiben. Es läuft in O (n) Zeit. Die string.split (Regex) ist bekannt dafür, langsam zu sein. Ich habe es kürzlich anstelle einer Schleife verwendet und festgestellt, dass es O (n ^ 2) im Vergleich zur O (n) Schleife ist.
K.I.S. Hauptsächlich arbeitet hier