我的字符串看起来像这样:["a","b","c","d"]
。请注意,这是String
而不是String数组。但是我想将其转换为List<String>
。我怎样才能以最简单的方式实现这一目标?
答案 0 :(得分: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("\",[ ]*\""));
答案 1 :(得分:0)
正如评论中所指出的,这个字符串只是一个JSON数组 - 您应该只使用JSON解析器而不是尝试创建自己的。
This other SO answer(以及页面上的所有其他答案)提供了有关如何执行此操作的一些说明。
答案 2 :(得分:-2)
这是我的实施:
List<String> list = Arrays.asList(theString.split(""));
希望有所帮助。 SALAM
修改强>
抱歉,我没有很好地解决这个问题 这是一个新的实现:
List<String> list = Arrays.asList(theString.replace("\"", "").replace("[", "").replace("]", "").split(","));
list.forEach(e-> e.trim());
这不是最好的实施,但这就是我带来的:P