import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
public class TemplateUtil {
/**
* 替换的正则表达式,替换规则:${...}
*/
private static final Pattern TEMPLATE_REX = Pattern
.compile("\\$\\{(\\w*)\\}");
/**
* 内容的规则组,用于获取${...}2个大括号之间的内容
*/
private static final int CONTENT_GROUP = 1;
/**
* @Description 根据输入模版和参数生成对应的字符串,如果替换的内容不存在,则替换成空串,不要在{}之间有特殊字符
* <p>
* 替换规则:${key}替换为params中对应key的value值
* </p>
* @param template 输入的模版, 例如:${name}医生向你发送了一条宣教
* @param params 参数集合
* @return 生成的字符串
*/
public static String merge(String template, Map<String, String> params) {
String templateResult = template;
Matcher mat = TEMPLATE_REX.matcher(template);
while(mat.find()) {
String value = params.get(mat.group(CONTENT_GROUP));
value = StringUtils.isNotBlank(value) ? value
: StringUtils.EMPTY;
templateResult = templateResult.replace(mat.group(), value);
}
return templateResult;
}
}
通配符替换
最新推荐文章于 2024-06-19 01:07:13 发布