`

简单实现${}模板替换功能

阅读更多
/**
	* 简单实现${}模板功能
	* 如${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实现模板下载功能

    ### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...

    word模板替换方案.docx

    总的来说,Word模板替换方案利用poi-tl可以有效地实现动态生成Word文档,无论是简单的文本替换还是复杂的表格和图片处理,都能够轻松应对。这在批量生成报告、合同、证书等场合尤其有用,大大减轻了手动编辑的工作...

    使用kindeditor实现自定义邮件模板,后台根据不同数据动态生成邮件进行发送,前端简单实现demo

    综上所述,本项目结合KindEditor的富文本编辑功能和后台的动态生成、发送邮件能力,实现了自定义邮件模板的功能。这涉及到前端界面设计、HTML和字符串处理、SMTP邮件发送以及安全性和性能优化等多个方面的技术知识。

    简单的前端模板引擎能实现最基本的数据渲染

    这里我们关注的是一个简单的JavaScript实现的前端模板引擎,它能够完成基础的数据替换功能。通过这种方式,开发者可以预先定义好HTML模板,然后在运行时根据实际的数据填充这些模板,生成最终的页面。 首先,我们要...

    Aspose.Words For .NET 生成word和pdf 支持模板关键字替换图片替换

    这个库以其高效性和灵活性而著名,能够帮助程序员实现各种复杂的文档操作,比如模板填充、文本替换、图片插入等功能。 1. **模板关键词替换**: Aspose.Words支持使用模板来生成文档,模板中可以包含占位符关键词...

    word文档模板-使用poi技术替换文档中的变量

    本文将详细介绍如何使用POI技术替换Word模板中的变量,并提供具体的实现方法。 #### 二、准备工作 在开始之前,我们需要准备好以下内容: 1. **Java环境**:确保计算机上已安装JDK并配置好环境变量。 2. **Apache...

    word模板替换工具以及使用说明.7z

    标题中的“word模板替换工具”通常是指一个程序或软件,用于批量处理Microsoft Word文档,根据预设规则替换其中的特定文字、格式或者变量,以快速生成定制化的文档模板。这样的工具在企业中常用于批量生成报告、合同...

    Apache poi 根据word模板生成word报表 替换 循环列表 图片

    1. **模板替换**:在Word模板中,我们可以定义一些占位符,例如`{{name}}`,然后使用POI的API来查找并替换这些占位符。XWPFDocument类的getParagraphs()方法可以获取文档中的所有段落,接着遍历这些段落,检查其文本...

    tstemplate一个基于模板字符串的模板引擎的最简实现只适用于node环境

    “tstemplate一个基于模板字符串的模板引擎的最简实现只适用于node环境” 这个标题揭示了我们讨论的核心是名为“tstemplate”的模板引擎,它利用了JavaScript的模板字符串功能,并且是针对Node.js运行环境设计的。...

    简单实现模板引擎

    C#实现模板引擎的核心是解析模板文件,找到这些占位符,并用提供的数据进行替换。 1. **模板解析**:这是实现模板引擎的第一步。我们需要读取模板文件,比如使用`StreamReader`类从文件系统中打开文件。然后,我们...

    java字符串中${}或者{}等的占位符替换工具类

    该工具类的主要功能是实现占位符的替换,即将字符串中的${}或者{}等占位符依次替换为args数组中的值。 该工具类的实现主要基于Mybatis框架中的GenericTokenParser类的改写,使其具有良好的处理性能。在日常开发过程...

    java替换word中的变量

    在Java编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...

    mfc实现查找与替换

    以上就是使用MFC实现查找与替换功能的基本步骤。实际开发中,你可能还需要考虑更多细节,如文本范围的选择、多文档支持、撤销/重做功能等。通过这个过程,你可以深入了解MFC对话框的使用,以及如何与Windows控件交互...

    Velocity实现模板(详细步奏)

    Velocity 还支持模板继承和导入,允许创建基模板并由子模板覆盖或扩展,以实现模板的复用和定制。此外,Velocity 提供了丰富的工具和库,如 VelocityTools,来增强其功能,如国际化支持、日期/时间处理等。 总之,...

    jQuery实现的纯HTML模板进行ajax数据绑定

    标题中的“jQuery实现的纯HTML模板进行ajax数据绑定”指的是使用jQuery库来处理HTML模板,并通过AJAX技术动态地从服务器获取JSON数据,然后将这些数据绑定到模板中,实现页面内容的动态更新,无需刷新整个页面。...

    易语言源码易语言WORD替换.rar

    4. **字符串操作**:查找和替换功能的核心是字符串处理。易语言提供了丰富的字符串函数,如“查找字符串”、“替换字符串”等,用于在文档内容中寻找特定文字并进行替换。 5. **条件判断与循环**:在查找替换的过程...

    Django实现登录-注册等功能

    在本文中,我们将深入探讨如何使用Django框架来实现用户登录和注册功能,这对于任何Web应用程序来说都是核心组件。Django是一个用Python编写的高级Web框架,它鼓励快速开发和简洁实用的设计理念。 首先,我们需要...

    基于vue、datav、Echart框架的大数据可视化模板,提供数据动态刷新渲染屏幕适应内部图表自由替换、Mixins注入等功能

    这种图表的自由替换功能极大地扩展了模板的适用范围。 屏幕自适应是现代Web应用不可或缺的一部分,尤其在大数据可视化中,适应不同设备的屏幕尺寸至关重要。本模板考虑到了这一点,通过响应式设计,确保了在各种...

    简单的商城模板.zip

    《简单的商城模板》 网页商城模板是Web开发中常用的一种工具,它为快速构建电子商务网站提供了便捷的方式。这个“简单的商城模板”是一个压缩包文件,包含了一整套预先设计好的HTML、CSS和JavaScript代码,旨在简化...

    简单的后台HTML模板

    【简单的后台HTML模板】是一种专为网站...使用这样的模板,开发者可以节省大量时间,将精力集中在业务逻辑和功能实现上,而不是从零开始设计界面。同时,通过自定义和扩展模板,可以创建符合特定项目需求的后台系统。

Global site tag (gtag.js) - Google Analytics