网站首页> 博客> java 字符串占位符替换之字符串占位符实现(java简单模板渲染实现)

java 字符串占位符替换之字符串占位符实现(java简单模板渲染实现)

好文 2534
格式化记忆
收藏
  • 简单实现

关于java字符串占位符替换,专业方式是使用String.format和MessageFormat.format功能,这里提供个简单的基于正则实现的字符串占位符实现

    public static String tpl(String tplStr,Map data ) {
         Matcher m=Pattern.compile("\\{([\\w\\.]*)\\}").matcher(tplStr);            
         while(m.find()){                   
         String group=m.group();                   
         group= group.replaceAll("\\{|\\}", "");                   
         String value="";                   
         if(null!=data.get(group)){
                       value=String.valueOf(data.get(group));
                   }
                   tplStr=tplStr.replace(m.group(),value);
            }            return tplStr;
    }
  • 使用freemarker等模板引擎

private String defaultCharacter = "UTF-8";private Configuration cfg;public FreemarkerUtils() {
        cfg = new Configuration();
        cfg.setDefaultEncoding(defaultCharacter);
      cfg.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX); 
    }public  String generateString(
               Map data,  String tplStr) {
          String result = null;
          String name="myStrTpl";          try { 
              StringTemplateLoader stringTemplateLoader= new StringTemplateLoader();
              stringTemplateLoader.putTemplate(name, tplStr);
                cfg.setTemplateLoader(stringTemplateLoader); 
               Template template = cfg.getTemplate(name,defaultCharacter);
                StringWriter out = new StringWriter(); 
                template.process(data, out);  
                out.flush();  
                result= out.toString();                out.close(); 
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
          return result;
      }


  • 没有任何评论
个评论
格式化记忆

格式化记忆 (铂金)

95216金币 (274)粉丝 (31)源码

一切皆有可能!!!

 

加入微信群,不定期分享源码和经验
签到活跃榜 连续签到送额外金币
最新博客
校园跑腿系统外卖系统软件平台大学生创业平台搭建 471
壹脉销客智能名片CRM系统小程序可二开源码交付部署 459
为啥没搞了 658
Nginx 的 5 大应用场景,太实用了! 936
CentOS 8-stream 安装Postgresql 详细教程 1103
JAVA智慧校园管理系统小程序源码 电子班牌 Sass 模式 1061
Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 806
Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 791
致远OA权限 1284
发博客会有金币吗 825