如何在Java中将逗号分隔的双引号字符串转换为字符串列表/数组
我有以下输入字符串:如何在Java中将逗号分隔的双引号字符串转换为字符串列表/数组,java,string,replace,java-8,Java,String,Replace,Java 8,我有以下输入字符串: "["role_A","role_B","role_C"]" 我想将其转换为包含所有值(角色a、角色B、角色C)的字符串列表/数组 我已经使用了以下代码: String allRoles = roles.replace("\"","").replaceAll("\\[", "").replaceAll
"["role_A","role_B","role_C"]"
我想将其转换为包含所有值(角色a、角色B、角色C)的字符串列表/数组
我已经使用了以下代码:
String allRoles = roles.replace("\"","").replaceAll("\\[", "").replaceAll("\\]","").split(",");
任何人都可以建议更干净或更好的方法来使用Java8 如果字符串本身中有引号,则现有示例和带有替换引号的示例可能会中断。您可以使用JSONArray对其进行解析,然后根据需要将其转换为列表
String x = "[\"role_A\",\"role_B\",\"role_C\"]";
JSONArray arr = new JSONArray(x);
List<String> list = new ArrayList<String>();
for (Object one : arr) {
list.add((String)one);
}
System.out.println(list); //prints [role_A, role_B, role_C]
System.out.println(list.size()); //prints 3
String x=“[\“角色A\”、“角色B\”、“角色C\””;
JSONArray arr=新JSONArray(x);
列表=新的ArrayList();
用于(对象一:arr){
列表。添加((字符串)一个);
}
系统输出打印项次(列表)//打印[角色A、角色B、角色C]
System.out.println(list.size())//印刷品3
json.jar
可以在
结果数组
res
是您想要的数组。这应该可以做到:
String[] arr = s.substring(2, s.length()-2).split("\",\"");
最简单的解决方案是使用GSON或Jackson或任何Json转换器。 但是,如果您想手动执行此操作,可以使用正则表达式删除任何符号,并用逗号将其拆分。但我建议你改用图书馆,让你的生活更轻松
ObjectMapper mapper = new ObjectMapper();
List<String> list = mapper.readValue("[\"role_A\",\"role_B\"]",
mapper.getTypeFactory().constructCollectionType(List.class,
String.class));
ObjectMapper mapper=new ObjectMapper();
List List=mapper.readValue(“[\”角色A\”,“\”角色B\”,
mapper.getTypeFactory().ConstructionCollectionType(List.class,
String.class);
实现这一点的一种方法是:
List<String> roles = Stream.of(rolesStr.replaceAll("[\"\\[\\]]","").split(",")).collect(Collectors.toList());
System.out.println(roles);
roles.substring(2,roles.length()-2).split(“\”,\”)或roles.replaceAll(“\[\”,\”).split(“\”,\”);
List<String> roles = Stream.of(rolesStr.replaceAll("[\"\\[\\]]","").split(",")).collect(Collectors.toList());
System.out.println(roles);
[role_A, role_B, role_C]