4 回答
TA贡献1871条经验 获得超13个赞
如果您知道 格式正确,则可以使用 代替正则表达式。textString.substring()
String text = "['Stack1', 'Stack2']";
StringTokenizer tkn = new StringTokenizer(text.substring(1, text.length() - 1), ", ");
while (tkn.hasMoreTokens()) {
String v = tkn.nextToken();
System.out.println(v.substring(1, v.length() - 1)); // Stack1 Stack2
}
TA贡献1712条经验 获得超3个赞
看起来,你的意思是当然你可以使用杰克逊对象映射器来读取它,就像一个json字符串并反序列化到数组。但看起来并不容易。"[\"String 1\", \"String 2\"]"
TA贡献1802条经验 获得超10个赞
我想你可以在“ 上拆分,这将给你一个数组,内容为:, , , , 。[
Scenario 1
,
Scenario 2
]
然后,只需使用奇数索引获取每个值即可找到最终数组,这只是一个简单的数学计算。我认为这相当有效,因为它涉及较少的字符串操作,但我不知道进行更多拆分的开销是否值得。
TA贡献1789条经验 获得超8个赞
我能想到的最短版本是这样的:
String text = "['Stack1', 'Stack2']"; String[] splitted = text.split("\\['|', *'|'\\]");
编辑:我只是看到,数组中的第一个条目将是一个空的字符串。因此,也许最好在其中一条评论中使用解决方案:
String[] splitted2 = text.replaceAll("\\[|\\]|'", "").split(", *");
顺便说一句,这允许用逗号+空格分隔元素,或者只是逗号而不带空格。
添加回答
举报