为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

忽然笑 2022-09-22 10:40:43

我有以下代码:

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

我需要转换为 .我知道我可以替换[ ] “,我做了一个,但是有没有办法容易?"text"Arraysplit(",")


查看完整描述

4 回答

?
慕桂英4014372

TA贡献1564条经验 获得超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

}


查看完整回答
反对 回复 2022-09-22
?
交互式爱情

TA贡献1389条经验 获得超3个赞

看起来,你的意思是当然你可以使用杰克逊对象映射器来读取它,就像一个json字符串并反序列化到数组。但看起来并不容易。"[\"String 1\", \"String 2\"]"



查看完整回答
反对 回复 2022-09-22
?
守候你守候我

TA贡献1469条经验 获得超10个赞

我想你可以在“ 上拆分,这将给你一个数组,内容为:, , , , 。[Scenario 1,Scenario 2]

然后,只需使用奇数索引获取每个值即可找到最终数组,这只是一个简单的数学计算。我认为这相当有效,因为它涉及较少的字符串操作,但我不知道进行更多拆分的开销是否值得。


查看完整回答
反对 回复 2022-09-22
?
拉丁的传说

TA贡献1443条经验 获得超8个赞

我能想到的最短版本是这样的:

String text = "['Stack1', 'Stack2']";
String[] splitted = text.split("\\['|', *'|'\\]");

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

String[] splitted2 = text.replaceAll("\\[|\\]|'", "").split(", *");

顺便说一句,这允许用逗号+空格分隔元素,或者只是逗号而不带空格。


查看完整回答
反对 回复 2022-09-22

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信