赞
踩
开发的时候经常会有占位符的替换例如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提供了相对简便的占位符替换的方式。
示例代码。
引入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替换。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。