java正则表达式解析短信模板
2016-04-12 23:35
344 查看
/** * */ package testJava.java; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author xxx.sjtu * @function * @date 2016年4月12日 * @version */ public class ReplaceTest { /** * @param args */ public static void main(String[] args) { String tempalteContent = "您的“$CarBrand$”(车牌$CarPlateNum$)已经完成租用(订单号:$orderNo$)。本次租金收益$RentIncome$元,$ServiceExpense$$ServiceExpenseProxy$$You2RenterAdjust$$Renter2YouAdjust$$HardwareDeposit$$ownerTransDebt$$TotalIncome$在1个工作日后结算至您设置的银行卡中。您可在App车主收益页面查看详情"; Map contentParamMap = new HashMap(); contentParamMap.put("CarBrand", "奥迪"); contentParamMap.put("CarPlateNum", "沪A0001"); contentParamMap.put("orderNo", "1245221158"); contentParamMap.put("RentIncome", "2000"); contentParamMap.put("ServiceExpense", "平台服务费100元,"); Scanner sc = new Scanner(tempalteContent); StringBuffer buf = new StringBuffer(); try{ Pattern p = Pattern.compile("[$]([^$]*?)[$]"); while (sc.hasNext()) { System.out.println(sc.toString()); Matcher m = p.matcher(sc.nextLine()); while (m.find()) { //查找并替换参数 System.out.println(m.group(1)); //从map中根据key获取值 m.appendReplacement(buf, contentParamMap.get(m.group(1)) != null ? contentParamMap.get(m.group(1)).toString() : ""); } m.appendTail(buf); } // if(StringUtils.isEmpty(buf.toString())){ // buf.append(tempalteContent); // } }catch(Exception e){ // logger.error("替换短信模板内容报错!",e); e.printStackTrace(); }finally{ sc.close(); } System.out.println("buf=" + buf); } }
相关文章推荐
- VisualSVN TortoiseSVN 360云盘同步版 Myeclipse svn 实现远程版本控制
- java:Format
- Java-什么是闭包(closure)
- Spring官网改版后下载
- 分享从google上下载的Eclipse ADT插件(目前我所收集的全部版本)
- 电子钱包的圈存——java card开发第四篇
- Mac OS X 下查看和设置JAVA_HOME
- MySql数据类型和Java数据类型对应一览
- Java示例
- 20145229吴姗珊 《Java程序设计》两天小总结
- Java实现八数码问题
- 牛客网-华为机试在线训练-2.取近似值
- Eclipse使用总结
- 编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。
- Spring中bean的scope
- Maven配置Spring+SpringMVC+MyBatis(3.2.2)Pom
- Java I/O(一) NIO概述
- Intellijidea建javaWeb以及Servlet简单实现
- myeclipse与mysql练习
- java OPENCV 连通域, Imgproc.findContours 例子,参数说明