Хотя функция String.split(String regex)
указывает, что она принимает регулярное выражение в качестве параметра, это не мешает вам экранировать любые специальные символы и разбивать текстовую строку.
Чтобы экранировать специальные символы в регулярном выражении, вы можете использовать функцию Pattern.quote(String s)
, или вы можете экранировать отдельные символы, используя обратную косую черту \\
:
String escapedStr = Pattern.quote("}},");
String alternativeEscapedStr = "\\}\\},";
Однако, для приведенного вами примера вам не нужно ничего избегать:
String str = "{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e]}}, B={333={i= [b,c]}}}";
String[] splitStr = str.split(Pattern.quote("}},"));
System.out.println(Arrays.toString(splitStr));
String[] splitStr2 = str.split("}},");
System.out.println(Arrays.toString(splitStr2));
Выход:
[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e], B={333={i= [b,c]}}}]
[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e], B={333={i= [b,c]}}}]