package com.fs.watch.utils;

import java.util.ArrayList;
import java.util.List;

public class ListConverterUtils {
    /**
     * 将字符串形式的数组转换为 List<Short>
     * @param strArray 包含整数的字符串，例如 "[-3, 5248, -1, 7, ...]"
     * @return 转换后的 List<Short>
     * @throws NumberFormatException 如果字符串中的数字格式不正确
     */
    public static List<Short> convertStringToShortList(String strArray) throws NumberFormatException {
        // 去掉字符串中的方括号并按逗号分割
        strArray = strArray.replace("[", "").replace("]", "").trim();
        String[] stringArray = strArray.split(",\\s*");

        // 创建List<Short>并将字符串转换为Short类型
        List<Short> shortList = new ArrayList<>();
        for (String s : stringArray) {
            try {
                shortList.add(Short.parseShort(s));
            } catch (NumberFormatException e) {
                // 打印错误信息并抛出异常
                System.err.println("无法将字符串 '" + s + "' 转换为Short类型");
                throw e;
            }
        }

        return shortList;
    }

    /**
     * 将字符串形式的数组转换为 List<Integer>
     * @param strArray 包含整数的字符串，例如 "[-3, 5248, -1, 7, ...]"
     * @return 转换后的 List<Short>
     * @throws NumberFormatException 如果字符串中的数字格式不正确
     */
    public static List<Integer> convertStringToIntegerList(String strArray) throws NumberFormatException {
        // 去掉字符串中的方括号并按逗号分割
        strArray = strArray.replace("[", "").replace("]", "").trim();
        String[] stringArray = strArray.split(",\\s*");

        // 创建List<Integer>并将字符串转换为Short类型
        List<Integer> integerList = new ArrayList<>();
        for (String s : stringArray) {
            try {
                integerList.add(Integer.parseInt(s));
            } catch (NumberFormatException e) {
                // 打印错误信息并抛出异常
                System.err.println("无法将字符串 '" + s + "' 转换为Short类型");
                throw e;
            }
        }

        return integerList;
    }
}
