Java - Split and trim in one shot

I have a String like this : String attributes = " foo boo, faa baa, fii bii," I want to get a result like this :

String[] result = {"foo boo", "faa baa", "fii bii"};

So my issue is how should to make split and trim in one shot i already split:

String[] result = attributes.split(",");

But the spaces still in the result :

String[] result = {" foo boo", " faa baa", " fii bii"};
                    ^           ^           ^

I know that we can make a loop and make trim for every one but I want to makes it in shot.


Solution 1:

Use regular expression \s*,\s* for splitting.

String result[] = attributes.split("\\s*,\\s*");

For Initial and Trailing Whitespaces
The previous solution still leaves initial and trailing white-spaces. So if we're expecting any of them, then we can use the following solution to remove the same:

String result[] = attributes.trim().split("\\s*,\\s*");

Solution 2:

Using java 8 you can do it like this in one line

String[] result = Arrays.stream(attributes.split(",")).map(String::trim).toArray(String[]::new);