美文网首页
动态替换模板内容

动态替换模板内容

作者: 一介书生独醉江湖 | 来源:发表于2022-04-19 10:22 被阅读0次
package com.example.favoritecode;

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author ds
 * @Date 2022-04-19
 */
public class RegexUtils {

    private static Pattern templatePattern = Pattern.compile("\\<(\\w+)\\>");

    public static String templateEngine(String template, Map<String, Object> params) {
        StringBuffer sb = new StringBuffer();
        Matcher matcher = templatePattern.matcher(template);
        while (matcher.find()) {
            String key = matcher.group(1);
            Object value = params.get(key);
            matcher.appendReplacement(sb, value != null ?
                    Matcher.quoteReplacement(value.toString()) : "");
        }
        matcher.appendTail(sb);
        return sb.toString();
    }

    public static void main(String[] args){

        Map<String, Object> params = new HashMap<String, Object>(8);
        params.put("addr" , "北京");
        params.put("linktel" , "17600000001");

        String template = "尊敬的当事人,您好!您在“XXX”服务平台提交的申请已审查通过。审核意见:<审核意见>。请于<取日期><取时间>之后,携带您上传的所有材料的原件到我处完善公证程序、缴纳费用并领取XXX。我司地址为:<addr>。联系电话:<linktel>。";
        String comments = RegexUtils.templateEngine(template, params);
        System.out.println("comments : " + comments);
    }
}
打印
comments : 尊敬的当事人,您好!您在“XXX”服务平台提交的申请已审查通过。审核意见:<审核意见>。请于<取日期><取时间>之后,携带您上传的所有材料的原件到我处完善公证程序、缴纳费用并领取XXX。我司地址为:北京。联系电话:17600000001。

相关文章