我有以下代码:
String text = "[\"Scenario 1\", \"Scenario 2\"]"
我需要将"text"
转换为Array
。我知道我可以替换[]“,并且我执行split(",")
,但是有一种简单的方法吗?
答案 0 :(得分:2)
看来,您的意思是AtomicBoolean
当然,您可以使用jackson ObjectMapper像json字符串一样读取它并反序列化为数组。但这看起来并不容易。
答案 1 :(得分:2)
如果您知道text
的格式正确,则可以使用String.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
}
答案 2 :(得分:0)
我能想到的最短的版本是这样:
String text = "['Stack1', 'Stack2']";
String[] splitted = text.split("\\['|', *'|'\\]");
编辑:我刚刚看到,数组中的第一个条目将是一个空字符串。因此,最好在其中一项注释中使用解决方案:
String[] splitted2 = text.replaceAll("\\[|\\]|'", "").split(", *");
顺便说一句,这允许用逗号+空格分隔元素,也可以只用逗号分隔空格。
答案 3 :(得分:0)
我想您可以分割为“”,这将为您提供一个包含以下内容的数组:[
,Scenario 1
,,
,Scenario 2
,]
然后就是在每个值都带有奇数索引的情况下找到最终数组的情况,这只是一个简单的数学计算。我想这会相当有效,因为它涉及较少的字符串操作,但我不知道进行更多拆分的开销是否值得。