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)); } }
转载于:https://www.cnblogs.com/toSeeMyDream/p/6814430.html
Java占位符替换工具类相关推荐
- Java-自定义占位符替换工具类
技术重点 MessageFormat:提供了一种以语言中立的方式产生串联消息的方法.使用它可以构造为最终用户显示的消息. Matcher:Matcher解析器,根据Pattern正则表达式,对字符序列 ...
- Java 占位符 例子 - 消息模板
例子1: import java.text.SimpleDateFormat; import java.util.Date;import org.slf4j.Logger; import org.sl ...
- 【java spring boot使用easypoi实现word文档占位符替换文字和图片、Excel图片贴到对应单元格】
最近接到一个任务,写两个导出工具:1.word文档导出,将数据和图片放入到word中,将多个word合并为一个导出.2.Excel文档导出,将二维码信息和图片按照模板放入到Excel中,按9个一页排版 ...
- java word模板占位符_word模板导出的几种方式:第一种:占位符替换模板导出(只适用于word中含有表格形式的)...
1.占位符替换模板导出(只适用于word中含有表格形式的): /// /// 使用替换模板进行到处word文件 /// public class WordUtility { private objec ...
- JAVA字符串占位符替换
JAVA字符串占位符替换 如果有字符串 "我是{0},我来自{1},今年{2}岁. 请问怎样用String的内置方法用替换掉字符串的占位符:比如"我是中国人,我来自北京,今年22岁 ...
- java word 占位符替换,javaword占位符替换
一.java中有什么方法可以读取占位符的字符串,并且把占位符替换成参数 可以通过字符串的format方法进行实现. 举例:string domain = "www.ykmaiz.com&qu ...
- java将占位符替换成指定字符串的函数
提供一个可以将占位符替换成指定字符串的函数 /*** 将message中的占位符按照从左到右的顺序替换成制定的字符串.* 如:info("你好,我是{},我{}岁了", " ...
- java项目常用的工具类
前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...
- Java 线程 - 基础及工具类 (二)
Java 并发系列文章 Java 线程 - 并发理论基础(一) Java 线程 - 基础及工具类 (二) Java 线程 - 并发设计模式 (三) Java 线程(二) 通用的线程生命周期 Java ...
最新文章
- 【组队学习】【23期】Datawhale深度推荐模型
- Linux 磁盘管理命令
- android 多线程 场景,精选Android初中级面试题 (三): 深探Handler,多线程,Bitmap
- python缩进注意事项_python注意事项
- 关于纯HTML格式写入word
- abap 帮助文档 中文_谷歌的软件工程 读书笔记(十)文档
- 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。
- Objective-C控制语句
- Springboot项目启动的三种方式
- gbk字库音序对照表
- rapidminer java,rapidminer 数据导入及几个算子简单应用
- autojs的使用文档
- BZOJ1750: [Usaco2005 qua]Apple Catching
- Appium学习:雷电模拟器的使用
- 正交设计——实战【转】
- php 使用dataview,echarts如何优化数据视图dataView中的样式(代码示例)
- PASSWORD_VERIFY_FUNCTION(口令复杂性验证)
- VIM:消除~ 和 .un~后缀的备份文件
- APM 飞行模式切换--源码详解
- 大连海洋大学计算机考研资料汇总
热门文章
- mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...
- CATIA连接盘实体设计
- 频繁默认网关不可用_win10 总是默认网关不可用,怎么回事?
- 基于Java+SpringBoot+vue+elementui的校园文具商城系统详细设计和实现
- java 取dataset_Java LineDataSet.getYVals方法代码示例
- 怎么设置internet才能下载JAVA_如何使用Java从Internet下载和保存文件?
- react封装函数_react request.js 函数封装
- Java判断一个整数是否为水仙花数
- java spring mvc_java spring mvc 全注解
- JAVA.SQL.SQLNONTRANSIENTCONNECTIONEXCEPTION: COULD NOT CREATE CONNECTION TO DATABASE SERVER. ATTEMPT