【开发经验】java占位符对应key替换


前言

开发的时候经常会有占位符的替换例如mybatis的xml对sql的替换。

select * from t_user where id=#{id}

或者短信模板的替换,貌似发短信都需要有固定的模式,只能发送固定格式的短信。

1.尊敬的#{name},您的验证码为#{code}
2.尊敬的#{name},#{快递名称}提醒您,您的包裹已经到了#{位置},请注意查收,如果有疑问,请联系#{快递小哥},联系电话#{小哥电话}。

或者超链接替换

http://www.baidu.com?userId=#{userId}&token=#{token}

如上,一些需要文本替换的场景,java中String.format ()方法可以对%s进行顺序的替换,但是有些场景可能不知道有几个占位符,所以就比较尴尬。


一、apache commons-text占位符替换

apache commons-text提供了相对简便的占位符替换的方式。
示例代码。
引入jar。

 <dependency>
     <groupId>org.apache.commons</groupId>
     <artifactId>commons-text</artifactId>
      <version>1.8</version>
  </dependency>
	public static void main (String[] args)
	{
		Map<String,String> valuesMap = new HashMap ();
		valuesMap.put("name", "张三");
		valuesMap.put("code", "1234");
		String templateString = "您好 ${name},您的短信验证码是 ${code}.";
		StringSubstitutor sub = new StringSubstitutor(valuesMap);
		String resolvedString = sub.replace(templateString);
		System.out.println (resolvedString);
	}

您好 张三,您的短信验证码是 1234.

如上示例,可实现对应key替换。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁滴水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值