package com.ruoyi.common.excel; import cn.hutool.core.util.StrUtil; import com.ruoyi.common.exception.ServiceException; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *
以每一个一级选项值为Key,每个一级选项对应的二级数据为Value
*/ private Map注意:不能以数字,特殊符号开头,选项中不可以包含任何运算符号
* * @param vars 可选值内包含的参数 * @return 合规的可选值 */ public static String createOptionValue(Object... vars) { StringBuilder stringBuffer = new StringBuilder(); String regex = "^[\\S\\d\\u4e00-\\u9fa5]+$"; for (int i = 0; i < vars.length; i++) { String var = StrUtil.trimToEmpty(String.valueOf(vars[i])); if (!var.matches(regex)) { throw new ServiceException("选项数据不符合规则,仅允许使用中英文字符以及数字"); } stringBuffer.append(var); if (i < vars.length - 1) { // 直至最后一个前,都以_作为切割线 stringBuffer.append(DELIMITER); } } if (stringBuffer.toString().matches("^\\d_*$")) { throw new ServiceException("禁止以数字开头"); } return stringBuffer.toString(); } /** * 将处理后合理的可选值解析为原始的参数 * * @param option 经过处理后的合理的可选项 * @return 原始的参数 */ public static List