将字符串[“方案1”,“方案2”]转换为数组

时间:2019-04-04 11:02:53

标签: java arrays text

我有以下代码:

String text = "[\"Scenario 1\", \"Scenario 2\"]"

我需要将"text"转换为Array。我知道我可以替换[]“,并且我执行split(","),但是有一种简单的方法吗?

4 个答案:

答案 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]

然后就是在每个值都带有奇数索引的情况下找到最终数组的情况,这只是一个简单的数学计算。我想这会相当有效,因为它涉及较少的字符串操作,但我不知道进行更多拆分的开销是否值得。