• Java占位符替换工具类


    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));  
            }  
          
        }  
    

      

  • 相关阅读:
    iOS 测试
    runtime 大牛必备
    集成微信支付
    webview的使用以及js调用OC传参
    ScrollView的坑
    iOS 字符串 数组 字典 操作!
    Git的使用场景
    什么是Runloop?
    Cannot subclass final class class com.sun.proxy.$Proxy16
    <%@page include%>、<%@include%>、<jsp:include>三者之间的本质区别
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/6814430.html
Copyright © 2020-2023  润新知