java-替换字符串中花括号中的值(模仿log.info)

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

  

posted @ 2022-04-14 16:45  梅竹疯狂打豆豆  阅读(924)  评论(0)    收藏  举报