我们可以使用递归的方式来解决这个问题。具体思路如下:

  1. 将字符串转换成一个 List 对象。
  2. 判断 List 中的第一个元素是否为 List 类型,如果是,递归调用该方法,否则返回该元素。
  3. 如果 List 为空,则返回 null。

代码实现:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String str = "[[[1,2],3],4]";
        List<Object> list = parseList(str);
        Object result = getLastArray(list);
        System.out.println(result);
    }

    public static List<Object> parseList(String str) {
        str = str.substring(1, str.length() - 1);
        String[] arr = str.split(",");
        List<Object> list = new ArrayList<>();
        for (String s : arr) {
            if (s.startsWith("[")) {
                list.add(parseList(s));
            } else {
                list.add(Integer.parseInt(s));
            }
        }
        return list;
    }

    public static Object getLastArray(List<Object> list) {
        if (list.isEmpty()) {
            return null;
        }
        Object obj = list.get(0);
        if (obj instanceof List) {
            return getLastArray((List<Object>) obj);
        } else {
            return obj;
        }
    }
}

运行结果:

4
用java 对一个可以转成未知层数的list的字符串取最里面一层数组不要要字符切割等等方法

原文地址: https://www.cveoy.top/t/topic/bq8f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录