`

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

阅读更多
/**
	* 简单实现${}模板功能
	* 如${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, "--"));
}
分享到:
评论

相关推荐

    【模板移植】maxcms模板转pipicms[www.yunkan.cc]

    PiPiCMS标签一键替换 使用方法 选择你想替换的模板文件夹,如下图 选择后,点"替换后缀"及"替换标签"。...经过以上简单的操作,便可...**注:目前移植功能只实现max模板移植。所有测试模板都是基于max4.0的模板。

    .net旅游网站模板

    16.独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 17.采用AJAX技术,性能与效果得到极大提高。 18.前台内容栏目结构清晰,易于访问者查看想要的...

    winform记事本的实现源码

    采用winform进行开发,简单的实现了部分记事本功能,欢迎下载 二、功能介绍 本源码是一个简单记事本源码,可实现修改字体、颜色等简单功能 三、菜单功能 1、文件:新建;打开;保存;页面设置;打印;退出 2、编辑...

    清水阁XMLHttp实现Asp生成HTML静态文件(带进度条)

    清水阁出品,使用XMLHttp对象实现Asp生成HTML静态文件,支持生成进度条显示,以前发布过asp生成静态文件的模块例子,不过那是基于模板替换的方法实现的,这个是用XMLHttp的方法来实现的,页面很简单,直接执行...

    06.如何使用Django模板.mp4

    它支持模板继承、变量替换、条件判断等常用功能,使开发人员能够更好地组织和呈现数据。 表单处理:Django提供了方便的表单处理功能,包括表单验证、数据清洗和错误处理。这使得开发人员能够轻松地创建和处理用户...

    Terminal.ml:模板库,用于设置终端文本的样式和类型安全的变量替换

    Terminal.Template是一种简单的模板语言,用于使用类型安全的模板变量替换来表达样式化的终端文本。 为方便起见,将Alias Terminal.Template为Template : module Template = Terminal. Template 要为hello 创建...

    labview 2018 excel插件

    自动化测试项目中经常遇见按照用户报告模板数据excel输出,NI labview自带的报表生成VI功能简单,使用的函数并不能实现excel软件强大的数据处理功能,例如将按照用户的报表模板(模板根据需求实施变化),自带的函数...

    fasttemplate:用于Go的简单快速的模板引擎

    快速模板Go的简单快速模板引擎。 Fasttemplate仅执行一项任务-用用户定义的值替换模板占位符。 高速:) 如果您需要快速但功能强大的html模板引擎,请查看 。 请注意,与一样,fasttemplate不会对模板值进行任何转义。...

    通用网站模板 v1.0.zip

    独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 采用AJAX技术,性能与效果得到极大提高。 前台内容栏目结构清晰,易于访问者查看想要的内容。 ...

    通用网站模板b3 v1.0.zip

    独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 采用AJAX技术,性能与效果得到极大提高。 前台内容栏目结构清晰,易于访问者查看想要的内容。 ...

    NetCMS 1.7.0 Build 1125.rar

    支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 

    java iptables图形管理工具的设计与实现

    Java源代码是嵌入到JSP程序中的,它实现一些基本的简单的功能;Iptabels配置文件,是用户在修改防火墙设置时,用于被Java程序修改的。添加规则功能模块 删除规则功能模块 插入规则功能模块 替换规则功能模块 状态...

    计算机课设毕设资料-工作流引擎异常处理的研究与实现+答辩PPT.zip

    本文首先简单介绍工作流引擎、XPDL流程定义语言等基础技术。研究了基于流程异常分类的处理方法,我们分为可预测异常和非可预测异常进行相应处理的研究和实现。对于可预测异常,我们采用利用XPDL流程定义语言高度可...

    nodejs 简单实现动态html的方法

    1.实现的功能及原理 实现了将,用户表单的数据,与html相结合,将用户输入的数据,显示到html对应的位置。 原理:通过正则表达式,替换html中的模板数据 如用户名{name},可以通过拿到用户提交的name的值value,通过 ...

    最好的asp CMS系统科讯CMSV7.0全功能SQL商业版,KesionCMS V7.0最新商业全能版-免费下载

    26、系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能。 27、强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 28、评论独创Ajax让发表评论更为方便。用户体验的新突破,有效地提高用户...

    NetCMS_Ver1.0

    &lt;br&gt;支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。

    NETCMSv1.5(Build0509)完整源码版

    &lt;br&gt;支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 &lt;br&gt;...

    GGCMS网站管理系统 v1.2(asp.net+SqlServer)

    不但简单易用,而且安全可靠、功能强大,并且完全免费没有任何功能限制。系统提供的“计划任务”,可以自动实现采集、审核、生成静态、执行SQL语句等工作,让站长从每天繁琐、重复、机械化的工作中解脱出来。 主要...

    NetCMS v1.7.0 bulid 081125 源码版.rar

    支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 修改列表:(2008年...

    NetCMS v1.7.0 bulid 081125 正式版.rar

    支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 修改列表:(2008年...

Global site tag (gtag.js) - Google Analytics