配置文件或者模板中的占位符替换工具类
来源:互联网 发布:美军单兵口粮淘宝 编辑:程序博客网 时间:2024/06/09 21:48
有时候,很多文本存入数据库或者文件中,某些变量或者模板中会存在占位符的情况,然而每次读取,一个个去字符串.replace去替换就很麻烦,于是写个占位符替换工具类
具体代码:
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));}}
输出结果:
我们都是好孩子,小二比说是嘛? 我觉得小明是傻蛋
1 0
- 配置文件或者模板中的占位符替换工具类
- 配置文件或模板中的占位符替换工具类.
- 一个替换java字符串中${}或者{}等占位符的工具类
- Java占位符替换工具类
- 配置文件中,字符串占位符替换
- JAVA 处理Word模板文件,替换其中的占位符
- java 字符串占位符替换之字符串占位符实现(java简单模板渲染实现)
- java 占位符替换
- 替换占位符
- Apache 占位符工具类
- 替换文本中的$占位符 Template.substitute、 Template.safe_substitute
- spring 配置文件中的占位符 使用 context:property-placeholder
- spring 配置文件中的占位符 使用 context:property-placeholder
- spring 配置文件中的占位符 使用 context:property-placeholder
- spring 配置文件中的占位符 使用 context:property-placeholder
- 字符串替换:用参数字符数组成员替换字符串中的占位符(面试题)
- 替换properties文件 占位符
- JAVA字符串占位符替换
- Java总结反射+正则
- std::string用法总结
- Matlab:显示time信号的频谱
- 【Android小练手】安卓端实时获取HttpUrl数据
- oops异常定位方法
- 配置文件或者模板中的占位符替换工具类
- java、javascript、js、jsp的区别
- 黑马程序员——JAVA String类
- java 字节流与字符流的区别
- excel使用
- memcached全面剖析–5. memcached的应用和兼容程序
- position属性:absolute与relative的区别
- Django静态文件配置
- Android 刮刮卡自定义view