【开发经验】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替换。

猜你喜欢

转载自blog.csdn.net/qq_30285985/article/details/112259136