我知道使用myString.split(",");
如果我只有一个用逗号分隔的字符串,如 "a", "b", "c"
,那么就可以了,但是如果我有一个更复杂的字符串,例如:
["Meal End", "meal-end", "menu", {"color":"black", "width":1}]
我想分离出元素
"Meal End"
"meal-end"
"menu"
{"color":"black", "width":1}
我的第一个方法是从 (1 到 string.length - 1) 获取整个字符串的子字符串。这删除了[]。然后我使用了 string.split(",") ,它几乎起作用了......但是对于元素 3,我最终得到了我不想要的 {"color":"black"。
我想要整个大括号对象。除了手动搜索整个字符串、找到 { 时停止并到达 } 时继续之外,我还能如何执行此操作?
我考虑过使用 JSONObject,但我的字符串包含在 [ ] 中...我总是可以用 { } 替换它们,但仍然没有键...
最佳答案
我建议“ jackson ”。它将这个字符串解析为包含 3 个字符串和 1 个 map 的列表。
List<?> value = (List<?>) new ObjectMapper().readValue(
"[\"Meal End\", \"meal-end\", \"menu\", {\"color\":\"black\", \"width\":1}]",
Object.class);
System.out.println(value.get(0));
Map<?, ?> map = (Map<?, ?>) value.get(3);
System.out.println(map.get("color"));
输出:
Meal End
black
关于java - 如何在Java中将复杂的字符串转换为列表/数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48835255/