如何将一个字符串数组转换成列表?

80 浏览
0 Comments

如何将一个字符串数组转换成列表?

这个问题已经有了答案:
从数组创建ArrayList
将字符串数组转换为java.util.List

我有一个Java项目,它咨询一个API,该API返回一个类似于String的字符串:

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

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

0
0 Comments

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

String json = "['test1', 'test2', 'test3']";
Type listType = new TypeToken>() {}.getType();
List 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 list = new ArrayList<>();
while (matcher.find()) {
    list.add(matcher.group(1));
}
System.out.println(list); // [test1, test2, test3]

0