我有一个字符串,看起来像这样:[apple,peach,plum]。 我想用“[”和“]”拆分它以获取“列表”的项目,但它不适用于此解决方案:
String string = "[apple, peach, plum]";
String splitted = (string.split(Pattern.quote("["))[1]).split(Pattern.quote("]"))[0];
第一次拆分正在运行,但是当我尝试用“]”拆分它时,它什么也没做。
(我试过这个:
String splitted = (string.split(Pattern.quote("["))[1]).split(Pattern.quote(","))[0];
并且它有效,所以我认为问题是“]”符号。)
有什么想法吗?
答案 0 :(得分:2)
你实际上并不想用方括号拆分,你只想删除它们并用逗号分隔。
如果您的输入是一致的,您可以使用以下习语:
String string = "[apple, peach, plum]";
System.out.println(
// Array String representation
Arrays.toString(
// removing square brackets
string.substring(1, string.length() - 1)
// splitting by comma + optional whitespace
.split(",\\s*")
)
);
输出(请注意,这是一个由您的项目组成的String数组)
[apple, peach, plum]
答案 1 :(得分:0)
你也可以使用带有正则表达式\\s*(\\[)?([^,]*)(\\])?\\s*
的模式+匹配器:
Pattern pat = Pattern.compile("\\s*(\\[)?([^,]*)(\\])?\\s*");
Matcher m = pat.matcher(string);
m.find();
System.out.println(m.group(2));
m.find();
System.out.println(m.group(2));
...
该模式采用逗号(([^,]+))
分隔的所有内容,可由[ ((\[)?)
开头,以(\])?
结尾。