在 java 中拆分字符串的最佳方法

best way to split String in java

我有一个像 "asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]" 这样的字符串 我想把它拆分成一个像

这样的数组
Array[0] = asdfsd
Array[1] = [12345]
Array[2] = skfjoib
Array[3] = [346676]
Array[4] = qwoiejflksjv
Array[5] = [12345]

最好的方法是什么(代码更少,速度更快)?

非常快又脏:

String[] ss = s.replaceAll("[", ";[").replaceAll("]", "];").split(";");

这是一种方法:

input.split("(?=\[)|(?<=\])"))

正则表达式为 "Split on anything preceeding a [ or following a ]"

演示:

String input = "asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]";
for (String s : input.split("(?<=\])|(?=\[)"))
    System.out.println(s);

输出:

asdfsd
[12345]
skfjoib
[346676]
qwoiejflksjv
[12345]