java+解析占位符_java模板字符串优雅解析(占位符解析)

本文介绍了Java中如何优雅地解析模板字符串,重点讲解了PlaceholderResolver类的使用,包括其解析方式、性能对比以及多种解析方法,如使用Map、对象、可变参数和自定义前缀后缀。此外,还提供了源代码片段展示其核心功能。
摘要由CSDN通过智能技术生成

项目中常常需要解析字符串模板,比如user:{userId}:{userType}用于redis的key等,比较常见的做法就是使用String.format("user:%s:%s", 1, 1)方法,但个人感觉那样的模板不够明了,而使用模板解析器可更好地有助于解析此类字符串。可使用map用于解析,也可使用对象进行解析,也可使用类似String.format可变参数进行解析,多样化解析对象值。有点类似于js的模板字符串${}。

也可自定义前缀后缀进行解析。如PlaceholderResolver.getResolver("{", "}")该对象可解析{}该类型的占位符.

性能方面:

1bd70f34dd67

PlaceholderResolve解析结果

1bd70f34dd67

String.format解析结果

解析100w次,占位符解析比String.format平均都会快个0.4~0.5s,so 性能应该问题不大。最主要的是不需要调用太多的对象方法,自动解析,方便快捷。

源代码如下:

/**

* 占位符解析器

*

* @author meilin.huang

* @version 1.0

* @date 2018-11-13 1:42 PM

*/

public class PlaceholderResolver {

/**

* 默认前缀占位符

*/

public static final String DEFAULT_PLACEHOLDER_PREFIX = "${";

/**

* 默认后缀占位符

*/

public static final String DEFAULT_PLACEHOLDER_SUFFIX = "}";

/**

* 默认单例解析器<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值