public static String replace(String msg,Object...params) { if(msg==null){ throw new NullPointerException("msg"); } StringBuffer sb=new StringBuffer(); //定界符 final String delimiter="{}"; //括号出现的计数值 int cnt=0; if(params!=null && params.length>0 ) { for(int i=0 ; i<=params.length ; i++) { int tmpIndex = msg.indexOf(delimiter); //不存在赋值 if(tmpIndex == -1) { if(cnt == 0 || StringUtils.isNotBlank(msg)) { sb.append(msg); } break; }else { //存在则进行赋值拼接 String str = msg.substring(0, tmpIndex); msg = msg.substring((tmpIndex+2), msg.length()); String valStr = params[i].toString(); sb.append(str).append(valStr); cnt++; } } }else {//param为空时 sb.append(msg); } return sb.toString(); }
测试:
public static void main(String[] args) { String csd = replace("新媒体{}文章严重错敏词{}通知:{}" ,"aa","bb","cc"); System.out.println(csd); }
结果:
新媒体aa文章严重错敏词bb通知:cc