Hier ist die Regex-Einzeiler-Version:
System.out.println(Arrays.toString(
"Thequickbrownfoxjumps".split("(?<=\\G.{4})")
));
\Gist eine Behauptung mit einer Breite von Null, die mit der Position übereinstimmt, an der die vorherige Übereinstimmung beendet wurde. Wenn es war kein vorheriges Spiel, paßt es den Beginn des Eingangs, das gleiches wie \A. Das beiliegende Erscheinungsbild entspricht der Position, die vier Zeichen vom Ende der letzten Übereinstimmung entfernt ist.
Beide sehen gut aus und \Gsind erweiterte Regex-Funktionen, die nicht von allen Geschmacksrichtungen unterstützt werden. Darüber hinaus \Gwird nicht konsistent über die Geschmacksrichtungen implementiert, die es unterstützen. Dieser Trick funktioniert (zum Beispiel) in Java , Perl, .NET und JGSoft, jedoch nicht in PHP (PCRE), Ruby 1.9+ oder TextMate (beide Oniguruma). JavaScript /y(Sticky Flag) ist nicht so flexibel wie \Gund kann auf diese Weise nicht verwendet werden, selbst wenn JS Lookbehind unterstützt.
Ich sollte erwähnen, dass ich diese Lösung nicht unbedingt empfehle , wenn Sie andere Optionen haben. Die Nicht-Regex-Lösungen in den anderen Antworten sind möglicherweise länger, aber sie dokumentieren sich auch selbst. Dies ist genau das Gegenteil davon. ;)
Dies funktioniert auch nicht in Android, was die Verwendung \Gin Lookbehinds nicht unterstützt .