gone
gone

Reputation: 823

best way to split String in java

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

Answers (2)

aioobe
aioobe

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

davek
davek

Reputation: 22895

Very quick 'n dirty:

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

Upvotes: 6

Related Questions