首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串[“场景1”、“场景2"]转换为Array

将字符串[“场景1”、“场景2"]转换为Array
EN

Stack Overflow用户
提问于 2019-04-04 11:02:52
回答 4查看 98关注 0票数 2

我有以下代码:

代码语言:javascript
复制
String text = "[\"Scenario 1\", \"Scenario 2\"]"

我需要将"text"转换为Array。我知道我可以替换“我做了一个split(","),但是有一个简单的方法吗?”

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-04 11:19:04

如果您知道text的格式很好,就可以使用String.substring()而不是regex。

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-04-04 11:08:42

看来,您的意思是"[\"String 1\", \"String 2\"]",当然,您可以使用杰克逊ObjectMapper像json字符串一样读取它,并将其反序列化为数组。但看起来不太容易。

票数 2
EN

Stack Overflow用户

发布于 2019-04-04 11:18:58

我能想出的最短版本是:

代码语言:javascript
复制
String text = "['Stack1', 'Stack2']";
String[] splitted = text.split("\\['|', *'|'\\]");

编辑:我刚刚看到,数组中的第一个条目将是一个空字符串。因此,最好在其中一条评论中找到解决方案:

代码语言:javascript
复制
String[] splitted2 = text.replaceAll("\\[|\\]|'", "").split(", *");

顺便说一句,这允许用逗号+空格或没有空格的逗号分隔元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55514326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档