在java中拆分String的最佳方法

gon*_*one 3 java string split

我有一个类似的字符串"asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]" ,我想将它拆分为类似的数组

Array[0] = asdfsd
Array[1] = [12345]
Array[2] = skfjoib
Array[3] = [346676]
Array[4] = qwoiejflksjv
Array[5] = [12345]
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么(代码更少,速度更快)?

aio*_*obe 10

这是一种方式:

input.split("(?=\\[)|(?<=\\])"))
Run Code Online (Sandbox Code Playgroud)

正则表达式是"在一个[或之后的任何事物上分裂]".

演示:

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

输出:

asdfsd
[12345]
skfjoib
[346676]
qwoiejflksjv
[12345]
Run Code Online (Sandbox Code Playgroud)


dav*_*vek 6

很快'很脏:

String[] ss = s.replaceAll("[", ";[").replaceAll("]", "];").split(";");
Run Code Online (Sandbox Code Playgroud)

  • 如果字符串包含`;`开头,显然是行不通的. (3认同)