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
