Best way to split String in java

I have a string of type "asdfsd[12345]skfjoib[346676]qwoiejflksjv[12345]"

and I want to split it into an array like

Array[0] = asdfsd
Array[1] = [12345]
Array[2] = skfjoib
Array[3] = [346676]
Array[4] = qwoiejflksjv
Array[5] = [12345]

      

What's the best approach (less code, faster speed) to do this?

+3


source to share


2 answers


Here's one way:

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

      

The regex says "Divide on anything before [

or after 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]

      

+10


source


Very fast 'n dirty:



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

      

+6


source







All Articles