有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个Java项目,它咨询一个API,该API返回一个String类似:

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

所以基本上是一个数组对象被解析为String。我想知道将它转换为真正的Java List的最佳方法


共 (1) 个答案

  1. # 1 楼答案

    ['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]