java 字串預留位置替換之字串預留位置實現(java簡單模板渲染實現)

來源:互聯網
上載者:User
簡單實現

關於java字串預留位置替換,專業方式是使用String.format和MessageFormat.format功能,這裡提供個簡單的基於正則實現的字串預留位置實現

    public static String tpl(String tplStr,Map<String, Object> 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<String, Object> 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;      }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.