Как уже сказал Роб Ди Марко, при использовании метода, основанного на регулярных выражениях, вы должны избегать символов со специальным значением.
В качестве альтернативы вы можете использовать StringTokenizer
, который не использует регулярные выражения для разделения, и, таким образом, вам не нужно ничего избегать. Это также обычно быстрее, но не может сравниться с мощью и гибкостью регулярного выражения split
.
StringTokenizer tok=new StringTokenizer(s, "[");
List<String> tokens=new ArrayList<String>();
while (tok.hasMoreTokens()){
tokens.add(tok.nextToken());
}