Java - Split strings by“]”
问题描述:
我有一个字符串,看起来像这样:[apple,peach,plum]。 我想用“[”和“]”来分割它获得了“名单”的项目,但它并没有与此解决方案的工作:Java - Split strings by“]”
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];
和它的工作,所以我觉得这个问题是 “]” 符号。)
任何想法?
答
你实际上并不想用方括号来分割,你只是想消除它们并用逗号分割。
如果你的输入是一致的,你可以用下面的习惯:
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]
答
您还可以使用一个Pattern + Matcher与正则表达式\\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));
...
该模式采用所有以逗号(([^,]+))
分隔的文件,该文件可以以[ ((\[)?)
开头,并以(\])?
结尾。
我想你想'string.replaceAll(“[\\ [\\]]”,“”);' –
非常感谢您的及时回复! – SummerFlower