我有以下代码:
String text = "[\"Scenario 1\", \"Scenario 2\"]"我需要将"text"转换为Array。我知道我可以替换“我做了一个split(","),但是有一个简单的方法吗?”
发布于 2019-04-04 11:19:04
如果您知道text的格式很好,就可以使用String.substring()而不是regex。
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
}发布于 2019-04-04 11:08:42
看来,您的意思是"[\"String 1\", \"String 2\"]",当然,您可以使用杰克逊ObjectMapper像json字符串一样读取它,并将其反序列化为数组。但看起来不太容易。
发布于 2019-04-04 11:18:58
我能想出的最短版本是:
String text = "['Stack1', 'Stack2']";
String[] splitted = text.split("\\['|', *'|'\\]");编辑:我刚刚看到,数组中的第一个条目将是一个空字符串。因此,最好在其中一条评论中找到解决方案:
String[] splitted2 = text.replaceAll("\\[|\\]|'", "").split(", *");顺便说一句,这允许用逗号+空格或没有空格的逗号分隔元素。
https://stackoverflow.com/questions/55514326
复制相似问题