String#split
arbeitet mit einem Regulären Ausdruck , aber [
(und ]
) sind keine Standardzeichen, "regex-weise". Also müssen sie escaped sein - mit \[
(und \]
).
In Java String
ist jedoch \
ebenfalls kein Standardzeichen und muss auch maskiert sein.
Um also nur [
zu teilen, ist das verwendete Java String
"\["
; und du versuchst zu erhalten:
In diesem Fall werden Sie jedoch nicht nur semantisch einige wenige Zeichen in einem regulären Ausdruck umgehen, sondern sich wünschen, dass Ihr gesamtes Muster wortwörtlich interpretiert wird : es gibt eine Methode, genau das zu tun
String.split () verwendet einen regulären Ausdruck , keine normale Zeichenfolge als Argument. In einem regulären Ausdruck sind] und [Sonderzeichen, denen Backslashes vorausgehen müssen, damit sie wörtlich genommen werden können. Verwende .split("\], \[")
. (Die doppelten Backslashes weisen Java an, die Zeichenfolge als "\], \ [") zu interpretieren.