我有一个字符串,如下所示:["a","b","c","d"]
。注意这是一个String
而不是一个String数组。不过,我想将其转换为List<String>
。我怎样才能达到这个最简单的方式?将项目转换为列表<String>
回答
也许这样?
String s = "[\"a\",\"b\", \"c\", \"d\"]";
List<String> list = Arrays.asList(s.substring(1, s.length() - 1).replaceAll("[\" ]", "").split(","));
编辑
String s = "[\"a\",\"b\", \"c\", \"d\"]";
List<String> list = Arrays.asList(s.substring(1, s.length() - 1).split(","));
for (int i = 0; i < list.size(); i++) {
String ss = list.get(i).trim();
list.set(i, ss.substring(1, ss.length() - 1));
}
编辑#2
String s = "[\"a\",\"b\",\"c\",\"d\"]";
List<String> list = Arrays.asList(s.substring(2, s.length() - 2).split("\",[ ]*\""));
这会出错如果在任何字符串中都有逗号。 – 2014-10-03 21:37:38
事实上,如果字符串中有空格,它也会出错! – 2014-10-03 21:41:14
@ chiastic-security谢谢澄清!我修好了它。 – Krayo 2014-10-03 21:46:42
这是我实现:
List<String> list = Arrays.asList(theString.split(""));
希望有所帮助。萨拉姆
编辑
对不起,我没有得到这个问题非常好 这是一个新的实现:
List<String> list = Arrays.asList(theString.replace("\"", "").replace("[", "").replace("]", "").split(","));
list.forEach(e-> e.trim());
这不是最好的实现,但这个是我想出了:P
正如在注释中指出的那样,这个字符串只是一个JSON数组 - 您应该只使用JSON解析器而不是尝试创建自己的。
This other SO answer(以及页面上的所有其他答案)提供了有关如何执行此操作的一些说明。
如果您愿意分享您正在开发的解决方案,那真的很不错。 – 2014-10-03 21:29:41
@moviaa如果它是一个字符串比也许是:“[a,b,c,d]”? – Alboz 2014-10-03 21:31:01
试图做一个拆分和一些字符串操作 – 2014-10-03 21:32:59