欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java占位符替换工具类,java工具类, import j

来源: javaer 分享于  点击 22955 次 点评:196

Java占位符替换工具类,java工具类, import j


    import java.util.HashMap;      import java.util.Map;      import org.slf4j.Logger;      import org.slf4j.LoggerFactory;      /**      * 配置文件或模板中的占位符替换工具类      * Date: 15-5-8      * Time: 下午4:12      */      public class PlaceholderUtils {          private static final Logger logger = LoggerFactory.getLogger(PlaceholderUtils.class);          /**          * Prefix for system property placeholders: "${"          */          public static final String PLACEHOLDER_PREFIX = "${";          /**          * Suffix for system property placeholders: "}"          */          public static final String PLACEHOLDER_SUFFIX = "}";          public static String resolvePlaceholders(String text, Map<String, String> parameter) {              if (parameter == null || parameter.isEmpty()) {                  return text;              }              StringBuffer buf = new StringBuffer(text);              int startIndex = buf.indexOf(PLACEHOLDER_PREFIX);              while (startIndex != -1) {                  int endIndex = buf.indexOf(PLACEHOLDER_SUFFIX, startIndex + PLACEHOLDER_PREFIX.length());                  if (endIndex != -1) {                      String placeholder = buf.substring(startIndex + PLACEHOLDER_PREFIX.length(), endIndex);                      int nextIndex = endIndex + PLACEHOLDER_SUFFIX.length();                      try {                          String propVal = parameter.get(placeholder);                          if (propVal != null) {                              buf.replace(startIndex, endIndex + PLACEHOLDER_SUFFIX.length(), propVal);                              nextIndex = startIndex + propVal.length();                          } else {                              logger.warn("Could not resolve placeholder '" + placeholder + "' in [" + text + "] ");                          }                      } catch (Exception ex) {                          logger.warn("Could not resolve placeholder '" + placeholder + "' in [" + text + "]: " + ex);                      }                      startIndex = buf.indexOf(PLACEHOLDER_PREFIX, nextIndex);                  } else {                      startIndex = -1;                  }              }              return buf.toString();          }          public static void main(String[] args) {              String aa= "我们都是好孩子,${num}说是嘛? 我觉得${people}是傻蛋!";              Map<String, String> map = new HashMap<String, String>();              map.put("num","小二比");              map.put("people","小明");              System.out.println(PlaceholderUtils.resolvePlaceholders(aa, map));          }      }  
相关栏目:

用户点评