Heim > Java > javaLernprogramm > Hauptteil

Java占位符替换工具类

大家讲道理
Freigeben: 2016-11-11 10:53:40
Original
1994 Leute haben es durchsucht

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 &#39;" + placeholder + "&#39; in [" + text + "] ");  
                    }  
                } catch (Exception ex) {  
                    logger.warn("Could not resolve placeholder &#39;" + placeholder + "&#39; 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));  
    }  
   
}
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!