/**
* 简单实现${}模板功能
* 如${aa} cc ${bb} 其中 ${aa}, ${bb} 为占位符. 可用相关变量进行替换
* @param templateStr 模板字符串
* @param data 替换的变量值
* @param defaultNullReplaceVals 默认null值替换字符, 如果不提供, 则为字符串""
* @return 返回替换后的字符串, 如果模板字符串为null, 则返回null
*/
@SuppressWarnings("unchecked")
public static String simpleTemplate(String templateStr, Map<String, ?> data, String... defaultNullReplaceVals) {
if(templateStr == null) return null;
if(data == null) data = Collections.EMPTY_MAP;
String nullReplaceVal = defaultNullReplaceVals.length > 0 ? defaultNullReplaceVals[0] : "";
Pattern pattern = Pattern.compile("\\$\\{([^}]+)}");
StringBuffer newValue = new StringBuffer(templateStr.length());
Matcher matcher = pattern.matcher(templateStr);
while (matcher.find()) {
String key = matcher.group(1);
String r = data.get(key) != null ? data.get(key).toString() : nullReplaceVal;
matcher.appendReplacement(newValue, r.replaceAll("\\\\", "\\\\\\\\")); //这个是为了替换windows下的文件目录在java里用\\表示
}
matcher.appendTail(newValue);
return newValue.toString();
}
//测试方法
public static void main(String[] args) {
String tmpLine = "简历:\n 姓名: ${姓} ${名} \n 性别: ${性别}\n 年龄: ${年龄} \n";
Map<String, Object> data = new HashMap<String, Object>();
data.put("姓", "wen");
data.put("名", "66");
data.put("性别", "man");
data.put("年龄", "222");
System.out.println(simpleTemplate(tmpLine, null, "--"));
}
分享到:
相关推荐
### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...
总的来说,Word模板替换方案利用poi-tl可以有效地实现动态生成Word文档,无论是简单的文本替换还是复杂的表格和图片处理,都能够轻松应对。这在批量生成报告、合同、证书等场合尤其有用,大大减轻了手动编辑的工作...
综上所述,本项目结合KindEditor的富文本编辑功能和后台的动态生成、发送邮件能力,实现了自定义邮件模板的功能。这涉及到前端界面设计、HTML和字符串处理、SMTP邮件发送以及安全性和性能优化等多个方面的技术知识。
这里我们关注的是一个简单的JavaScript实现的前端模板引擎,它能够完成基础的数据替换功能。通过这种方式,开发者可以预先定义好HTML模板,然后在运行时根据实际的数据填充这些模板,生成最终的页面。 首先,我们要...
这个库以其高效性和灵活性而著名,能够帮助程序员实现各种复杂的文档操作,比如模板填充、文本替换、图片插入等功能。 1. **模板关键词替换**: Aspose.Words支持使用模板来生成文档,模板中可以包含占位符关键词...
本文将详细介绍如何使用POI技术替换Word模板中的变量,并提供具体的实现方法。 #### 二、准备工作 在开始之前,我们需要准备好以下内容: 1. **Java环境**:确保计算机上已安装JDK并配置好环境变量。 2. **Apache...
标题中的“word模板替换工具”通常是指一个程序或软件,用于批量处理Microsoft Word文档,根据预设规则替换其中的特定文字、格式或者变量,以快速生成定制化的文档模板。这样的工具在企业中常用于批量生成报告、合同...
1. **模板替换**:在Word模板中,我们可以定义一些占位符,例如`{{name}}`,然后使用POI的API来查找并替换这些占位符。XWPFDocument类的getParagraphs()方法可以获取文档中的所有段落,接着遍历这些段落,检查其文本...
“tstemplate一个基于模板字符串的模板引擎的最简实现只适用于node环境” 这个标题揭示了我们讨论的核心是名为“tstemplate”的模板引擎,它利用了JavaScript的模板字符串功能,并且是针对Node.js运行环境设计的。...
C#实现模板引擎的核心是解析模板文件,找到这些占位符,并用提供的数据进行替换。 1. **模板解析**:这是实现模板引擎的第一步。我们需要读取模板文件,比如使用`StreamReader`类从文件系统中打开文件。然后,我们...
该工具类的主要功能是实现占位符的替换,即将字符串中的${}或者{}等占位符依次替换为args数组中的值。 该工具类的实现主要基于Mybatis框架中的GenericTokenParser类的改写,使其具有良好的处理性能。在日常开发过程...
在Java编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...
以上就是使用MFC实现查找与替换功能的基本步骤。实际开发中,你可能还需要考虑更多细节,如文本范围的选择、多文档支持、撤销/重做功能等。通过这个过程,你可以深入了解MFC对话框的使用,以及如何与Windows控件交互...
Velocity 还支持模板继承和导入,允许创建基模板并由子模板覆盖或扩展,以实现模板的复用和定制。此外,Velocity 提供了丰富的工具和库,如 VelocityTools,来增强其功能,如国际化支持、日期/时间处理等。 总之,...
标题中的“jQuery实现的纯HTML模板进行ajax数据绑定”指的是使用jQuery库来处理HTML模板,并通过AJAX技术动态地从服务器获取JSON数据,然后将这些数据绑定到模板中,实现页面内容的动态更新,无需刷新整个页面。...
4. **字符串操作**:查找和替换功能的核心是字符串处理。易语言提供了丰富的字符串函数,如“查找字符串”、“替换字符串”等,用于在文档内容中寻找特定文字并进行替换。 5. **条件判断与循环**:在查找替换的过程...
在本文中,我们将深入探讨如何使用Django框架来实现用户登录和注册功能,这对于任何Web应用程序来说都是核心组件。Django是一个用Python编写的高级Web框架,它鼓励快速开发和简洁实用的设计理念。 首先,我们需要...
这种图表的自由替换功能极大地扩展了模板的适用范围。 屏幕自适应是现代Web应用不可或缺的一部分,尤其在大数据可视化中,适应不同设备的屏幕尺寸至关重要。本模板考虑到了这一点,通过响应式设计,确保了在各种...
《简单的商城模板》 网页商城模板是Web开发中常用的一种工具,它为快速构建电子商务网站提供了便捷的方式。这个“简单的商城模板”是一个压缩包文件,包含了一整套预先设计好的HTML、CSS和JavaScript代码,旨在简化...
【简单的后台HTML模板】是一种专为网站...使用这样的模板,开发者可以节省大量时间,将精力集中在业务逻辑和功能实现上,而不是从零开始设计界面。同时,通过自定义和扩展模板,可以创建符合特定项目需求的后台系统。