原理:利用java正则匹配变量,然后替换即可。
import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test01 { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>() ; map.put("memberId", "zhangsan") ; map.put("linkURL", "http://www.baidu.com") ; String str = "<p>\r\n" + " ${memberId},您好!</p>\r\n" + "<p>\r\n" + " 请点击下面的链接完成支付密码的修改:</p>\r\n" + "<p>\r\n" + " <a href=\"${linkURL}\" target=\"_blank\">${linkURL}</a></p>\r\n" + "<p>\r\n" + " (如果链接无法直接点击,请复制上面的链接到您的浏览器地址栏打开)</p>\r\n" + "" ; StringBuffer buf = new StringBuffer() ; Pattern pattern = Pattern.compile("\\$\\{(.+?)\\}") ; Matcher matcher = pattern.matcher(str); while(matcher.find()) { String name = matcher.group(1); System.out.println(name); matcher.appendReplacement(buf, map.get(name)) ; } matcher.appendTail(buf) ; System.out.println("================"); System.out.println(str); System.out.println("================"); System.out.println(buf.toString()); } }