Java - 一次性拆分和修剪

2022-08-31 12:20:31

我有一个这样的字符串:我想得到这样的结果:String attributes = " foo boo, faa baa, fii bii,"

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

所以我的问题是应该如何在一个镜头中进行拆分和修剪,我已经拆分了:

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

但结果仍然如此:spaces

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

我知道我们可以做一个循环,为每一个循环做,但我想在镜头中做到这一点。trim


答案 1

使用正则表达式进行拆分。\s*,\s*

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

对于初始和尾随空格
,以前的解决方案仍保留初始空格和尾随空格。因此,如果我们期望其中任何一个,那么我们可以使用以下解决方案来删除相同的内容:

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

答案 2

使用java 8,你可以在一行中做到这一点

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