如何将字符串数组转换为列表?

时间:2019-01-16 14:30:01

标签: java

我有一个Java项目,女巫咨询了一个API,该API返回了String,例如:

"['test1', 'test2', 'test3']" // the array is a string

因此基本上是将数组对象解析为String。我想知道将其转换为真实Java List的最佳方法。

1 个答案:

答案 0 :(得分:5)

['test1', 'test2', 'test3']是一个JSON数组,因此可以用GsonJackson进行解析。尽管JSON通常要求在String值周围使用双引号,但Gson仍会解析单引号:

String json = "['test1', 'test2', 'test3']";
Type listType = new TypeToken<List<String>>() {}.getType();
List<String> list = new Gson().fromJson(json, listType);
System.out.println(list); // [test1, test2, test3]

或者,您可以使用正则表达式。假定值不能包含转义的撇号\'符号:

String text = "['test1', 'test2', 'test3']";
Pattern pattern = Pattern.compile("'([^']+)'");
Matcher matcher = pattern.matcher(text);
List<String> list = new ArrayList<>();
while (matcher.find()) {
    list.add(matcher.group(1));
}
System.out.println(list); // [test1, test2, test3]