Java用正则表达式实现${name}形式的字符串模板实例

发布时间 - 2026-01-10 21:52:42    点击率:

前言

相信大家可能曾遇到过这种情况,在开发中类似站内信的需求时,我们经常要使用字符串模板,比如

尊敬的用户${name}。。。。

里面的${name}就可以替换为用户的用户名。

下面使用正则表达式简单实现一下这个功能:

/**
  * 根据键值对填充字符串,如("hello ${name}",{name:"xiaoming"})
  * 输出:
  * @param content
  * @param map
  * @return
  */
 public static String renderString(String content, Map<String, String> map){
  Set<Entry<String, String>> sets = map.entrySet();
  for(Entry<String, String> entry : sets) {
   String regex = "\\$\\{" + entry.getKey() + "\\}";
   Pattern pattern = Pattern.compile(regex);
   Matcher matcher = pattern.matcher(content);
   content = matcher.replaceAll(entry.getValue());
  }
  return content;
 }

map里存储了键值对,然后获取键值对的集合,遍历集合进行对字符串的渲染

实例测试:

@Test
 public void renderString() {
  String content = "hello ${name}, 1 2 3 4 5 ${six} 7, again ${name}. ";
  Map<String, String> map = new HashMap<>();
  map.put("name", "java");
  map.put("six", "6");
  content = StringHelper.renderString(content, map);
  System.out.println(content);
 }

有两个变量需要替换,namesix,对应的值分别为Java和6,同时name调用了两次。

结果:

hello java, 1 2 3 4 5 6 7, again java. 

总结

以上就是关于Java利用正则表达式实现${name}形式的字符串模板的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# java  # 字符串模板  # java字符串正则表达式  # 字符串模板替换  # Java正则表达式循环匹配字符串方式  # java 正则表达式获取两个字符中间的字符串方法  # Java通过正则表达式获取字符串中数字的方法示例  # java使用正则表达式查找包含的字符串示例  # Java正则表达式判断字符串中是否包含中文示例  # Java使用正则表达式判断字符串是否以字符开始  # Java字符串 正则表达式详解  # Java使用正则表达式截取重复出现的XML字符串功能示例  # Java正则表达式匹配字符串并提取中间值的方法实例  # 键值  # 站内  # 遍历  # 两次  # 这种情况  # 正则表达式  # 分别为  # 要使  # 遇到过  # 就可以  # 有两个  # 有疑问  # String  # public  # return  # xiaoming  # map  # static  # param 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Laravel怎么清理缓存_Laravel optimize clear命令详解  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Laravel如何实现多对多模型关联?(Eloquent教程)  使用Dockerfile构建java web环境  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何安全更换建站之星模板并保留数据?  如何在橙子建站中快速调整背景颜色?  黑客入侵网站服务器的常见手法有哪些?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在建站之星绑定自定义域名?  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Android GridView 滑动条设置一直显示状态(推荐)  网站建设要注意的标准 促进网站用户好感度!  javascript基本数据类型及类型检测常用方法小结  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Android中AutoCompleteTextView自动提示  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  网页设计与网站制作内容,怎样注册网站?  如何用花生壳三步快速搭建专属网站?  高端网站建设与定制开发一站式解决方案 中企动力  如何快速启动建站代理加盟业务?  php json中文编码为null的解决办法  深圳网站制作的公司有哪些,dido官方网站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何用美橙互联一键搭建多站合一网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  制作电商网页,电商供应链怎么做?  如何正确选择百度移动适配建站域名?  详解CentOS6.5 安装 MySQL5.1.71的方法  如何快速查询域名建站关键信息?  如何在局域网内绑定自建网站域名?  微信小程序 配置文件详细介绍  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  北京专业网站制作设计师招聘,北京白云观官方网站?  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  网站制作大概多少钱一个,做一个平台网站大概多少钱?  百度浏览器如何管理插件 百度浏览器插件管理方法