用Java封装一个方法,根据短信模板和短信内容,匹配出模板中占位符对应的值,放入map中。方法执行效率要高
如:
模板:${charCode1}编号${charCode2}到${charCode3}电话${charCode4}
内容:编号B-114你好韵达快递麻烦凭取件编号尽快到智能科技园旁边超市取件,麻烦当天件当天取,谢谢电话186****7686
期望结果:
{
"charCode1": "编号B-114你好韵达快递麻烦凭取件",
"charCode2": "尽快",
"charCode3": "智能科技园旁边超市取件,麻烦当天件当天取,谢谢",
"charCode4": "186****7686"
}
方法需要正确解析下面的
模板:你好${charCode1}快递${charCode2}电话${charCode3}
内容:你好快递给到了智能科技园西门了快递柜了请您尽快领取您的快递谢谢电话186****7686
这个简单,直接模板把特殊字符替换为转义符号,然后把${charCode1}变成括号分组,就是正则表达式。
public static String fillMould(String mould,Map<String,String> map){
Iterator<Map.Entry<String, String>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String, String> entry = iter.next();
String key = entry.getKey();
String val = entry.getValue();
mould = mould.replaceAll("\\$\\{" +key+"}",val);
}
return mould;
}