2014-10-03 110 views
-1

我有一个字符串,如下所示:["a","b","c","d"]。注意这是一个String而不是一个String数组。不过,我想将其转换为List<String>。我怎样才能达到这个最简单的方式?将项目转换为列表<String>

+2

如果您愿意分享您正在开发的解决方案,那真的很不错。 – 2014-10-03 21:29:41

+1

@moviaa如果它是一个字符串比也许是:“[a,b,c,d]”? – Alboz 2014-10-03 21:31:01

+0

试图做一个拆分和一些字符串操作 – 2014-10-03 21:32:59

回答

0

也许这样?

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("\",[ ]*\"")); 
+0

这会出错如果在任何字符串中都有逗号。 – 2014-10-03 21:37:38

+0

事实上,如果字符串中有空格,它也会出错! – 2014-10-03 21:41:14

+0

@ chiastic-security谢谢澄清!我修好了它。 – Krayo 2014-10-03 21:46:42

-2

这是我实现:

List<String> list = Arrays.asList(theString.split("")); 

希望有所帮助。萨拉姆

编辑

对不起,我没有得到这个问题非常好 这是一个新的实现:

List<String> list = Arrays.asList(theString.replace("\"", "").replace("[", "").replace("]", "").split(",")); 
list.forEach(e-> e.trim()); 

这不是最好的实现,但这个是我想出了:P

0

正如在注释中指出的那样,这个字符串只是一个JSON数组 - 您应该只使用JSON解析器而不是尝试创建自己的。

This other SO answer(以及页面上的所有其他答案)提供了有关如何执行此操作的一些说明。