解析預留位置的替換演算法

來源:互聯網
上載者:User

標籤:java   os   art   re   c   演算法   

#解析預留位置替換的演算法, <property name="url" value="${url}"/>//text 為輸入預留位置 如:${url}public String parse(String text) {    StringBuilder builder = new StringBuilder();    if (text != null && text.length() > 0) {      char[] src = text.toCharArray();      int offset = 0;      int start = text.indexOf(openToken, offset);      while (start > -1) {        if (start > 0 && src[start - 1] == ‘\\‘) {          // the variable is escaped. remove the backslash.          builder.append(src, offset, start - 1).append(openToken);          offset = start + openToken.length();        } else {          int end = text.indexOf(closeToken, start);          if (end == -1) {            builder.append(src, offset, src.length - offset);            offset = src.length;          } else {            builder.append(src, offset, start - offset);            offset = start + openToken.length();            String content = new String(src, offset, end - offset);            builder.append(handler.handleToken(content));            offset = end + closeToken.length();          }        }        start = text.indexOf(openToken, offset);      }      if (offset < src.length) {        builder.append(src, offset, src.length - offset);      }    }    return builder.toString();  }


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.