Reputation: 823
I have a String like "asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]"
and I want to split it to an Array like
Array[0] = asdfsd
Array[1] = [12345]
Array[2] = skfjoib
Array[3] = [346676]
Array[4] = qwoiejflksjv
Array[5] = [12345]
What is the best approach(less code,more speed) to do that ?
Upvotes: 3
Views: 2513
Reputation: 420921
Here's one way:
input.split("(?=\\[)|(?<=\\])"))
The regexp says "Split on anything preceeding a [
or following a ]
".
Demo:
String input = "asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]";
for (String s : input.split("(?<=\\])|(?=\\[)"))
System.out.println(s);
Output:
asdfsd
[12345]
skfjoib
[346676]
qwoiejflksjv
[12345]
Upvotes: 10
Reputation: 22895
Very quick 'n dirty:
String[] ss = s.replaceAll("[", ";[").replaceAll("]", "];").split(";");
Upvotes: 6