/**
* 简单实现${}模板功能
* 如${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, "--"));
}
分享到:
相关推荐
PiPiCMS标签一键替换 使用方法 选择你想替换的模板文件夹,如下图 选择后,点"替换后缀"及"替换标签"。...经过以上简单的操作,便可...**注:目前移植功能只实现max模板移植。所有测试模板都是基于max4.0的模板。
16.独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 17.采用AJAX技术,性能与效果得到极大提高。 18.前台内容栏目结构清晰,易于访问者查看想要的...
采用winform进行开发,简单的实现了部分记事本功能,欢迎下载 二、功能介绍 本源码是一个简单记事本源码,可实现修改字体、颜色等简单功能 三、菜单功能 1、文件:新建;打开;保存;页面设置;打印;退出 2、编辑...
清水阁出品,使用XMLHttp对象实现Asp生成HTML静态文件,支持生成进度条显示,以前发布过asp生成静态文件的模块例子,不过那是基于模板替换的方法实现的,这个是用XMLHttp的方法来实现的,页面很简单,直接执行...
它支持模板继承、变量替换、条件判断等常用功能,使开发人员能够更好地组织和呈现数据。 表单处理:Django提供了方便的表单处理功能,包括表单验证、数据清洗和错误处理。这使得开发人员能够轻松地创建和处理用户...
Terminal.Template是一种简单的模板语言,用于使用类型安全的模板变量替换来表达样式化的终端文本。 为方便起见,将Alias Terminal.Template为Template : module Template = Terminal. Template 要为hello 创建...
自动化测试项目中经常遇见按照用户报告模板数据excel输出,NI labview自带的报表生成VI功能简单,使用的函数并不能实现excel软件强大的数据处理功能,例如将按照用户的报表模板(模板根据需求实施变化),自带的函数...
快速模板Go的简单快速模板引擎。 Fasttemplate仅执行一项任务-用用户定义的值替换模板占位符。 高速:) 如果您需要快速但功能强大的html模板引擎,请查看 。 请注意,与一样,fasttemplate不会对模板值进行任何转义。...
独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 采用AJAX技术,性能与效果得到极大提高。 前台内容栏目结构清晰,易于访问者查看想要的内容。 ...
独创全站图片即时替换功能,方便地替换网站中任何位置的图片(包括背景图片),再也不用找不到图片路径而发愁了。 采用AJAX技术,性能与效果得到极大提高。 前台内容栏目结构清晰,易于访问者查看想要的内容。 ...
支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。
Java源代码是嵌入到JSP程序中的,它实现一些基本的简单的功能;Iptabels配置文件,是用户在修改防火墙设置时,用于被Java程序修改的。添加规则功能模块 删除规则功能模块 插入规则功能模块 替换规则功能模块 状态...
本文首先简单介绍工作流引擎、XPDL流程定义语言等基础技术。研究了基于流程异常分类的处理方法,我们分为可预测异常和非可预测异常进行相应处理的研究和实现。对于可预测异常,我们采用利用XPDL流程定义语言高度可...
1.实现的功能及原理 实现了将,用户表单的数据,与html相结合,将用户输入的数据,显示到html对应的位置。 原理:通过正则表达式,替换html中的模板数据 如用户名{name},可以通过拿到用户提交的name的值value,通过 ...
26、系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能。 27、强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 28、评论独创Ajax让发表评论更为方便。用户体验的新突破,有效地提高用户...
<br>支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。
<br>支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 <br>...
不但简单易用,而且安全可靠、功能强大,并且完全免费没有任何功能限制。系统提供的“计划任务”,可以自动实现采集、审核、生成静态、执行SQL语句等工作,让站长从每天繁琐、重复、机械化的工作中解脱出来。 主要...
支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 修改列表:(2008年...
支持数据库字段替换功能,在线执行SQL语句,数据备份和恢复功能 系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能;强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 修改列表:(2008年...