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占位符替换工具类相关推荐

  1. Java-自定义占位符替换工具类

    技术重点 MessageFormat:提供了一种以语言中立的方式产生串联消息的方法.使用它可以构造为最终用户显示的消息. Matcher:Matcher解析器,根据Pattern正则表达式,对字符序列 ...

  2. Java 占位符 例子 - 消息模板

    例子1: import java.text.SimpleDateFormat; import java.util.Date;import org.slf4j.Logger; import org.sl ...

  3. 【java spring boot使用easypoi实现word文档占位符替换文字和图片、Excel图片贴到对应单元格】

    最近接到一个任务,写两个导出工具:1.word文档导出,将数据和图片放入到word中,将多个word合并为一个导出.2.Excel文档导出,将二维码信息和图片按照模板放入到Excel中,按9个一页排版 ...

  4. java word模板占位符_word模板导出的几种方式:第一种:占位符替换模板导出(只适用于word中含有表格形式的)...

    1.占位符替换模板导出(只适用于word中含有表格形式的): /// /// 使用替换模板进行到处word文件 /// public class WordUtility { private objec ...

  5. JAVA字符串占位符替换

    JAVA字符串占位符替换 如果有字符串 "我是{0},我来自{1},今年{2}岁. 请问怎样用String的内置方法用替换掉字符串的占位符:比如"我是中国人,我来自北京,今年22岁 ...

  6. java word 占位符替换,javaword占位符替换

    一.java中有什么方法可以读取占位符的字符串,并且把占位符替换成参数 可以通过字符串的format方法进行实现. 举例:string domain = "www.ykmaiz.com&qu ...

  7. java将占位符替换成指定字符串的函数

    提供一个可以将占位符替换成指定字符串的函数 /*** 将message中的占位符按照从左到右的顺序替换成制定的字符串.* 如:info("你好,我是{},我{}岁了", " ...

  8. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  9. Java 线程 - 基础及工具类 (二)

    Java 并发系列文章 Java 线程 - 并发理论基础(一) Java 线程 - 基础及工具类 (二) Java 线程 - 并发设计模式 (三) Java 线程(二) 通用的线程生命周期 Java ...

最新文章

  1. 【组队学习】【23期】Datawhale深度推荐模型
  2. Linux 磁盘管理命令
  3. android 多线程 场景,精选Android初中级面试题 (三): 深探Handler,多线程,Bitmap
  4. python缩进注意事项_python注意事项
  5. 关于纯HTML格式写入word
  6. abap 帮助文档 中文_谷歌的软件工程 读书笔记(十)文档
  7. 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。
  8. Objective-C控制语句
  9. Springboot项目启动的三种方式
  10. gbk字库音序对照表
  11. rapidminer java,rapidminer 数据导入及几个算子简单应用
  12. autojs的使用文档
  13. BZOJ1750: [Usaco2005 qua]Apple Catching
  14. Appium学习:雷电模拟器的使用
  15. 正交设计——实战【转】
  16. php 使用dataview,echarts如何优化数据视图dataView中的样式(代码示例)
  17. PASSWORD_VERIFY_FUNCTION(口令复杂性验证)
  18. VIM:消除~ 和 .un~后缀的备份文件
  19. APM 飞行模式切换--源码详解
  20. 大连海洋大学计算机考研资料汇总

热门文章

  1. mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...
  2. CATIA连接盘实体设计
  3. 频繁默认网关不可用_win10 总是默认网关不可用,怎么回事?
  4. 基于Java+SpringBoot+vue+elementui的校园文具商城系统详细设计和实现
  5. java 取dataset_Java LineDataSet.getYVals方法代码示例
  6. 怎么设置internet才能下载JAVA_如何使用Java从Internet下载和保存文件?
  7. react封装函数_react request.js 函数封装
  8. Java判断一个整数是否为水仙花数
  9. java spring mvc_java spring mvc 全注解
  10. JAVA.SQL.SQLNONTRANSIENTCONNECTIONEXCEPTION: COULD NOT CREATE CONNECTION TO DATABASE SERVER. ATTEMPT