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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM