码迷,mamicode.com
首页 > 其他好文 > 详细

解析占位符的替换算法

时间:2014-07-21 10:18:18      阅读:201      评论:0      收藏:0      [点我收藏+]

标签: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();
  }


解析占位符的替换算法,布布扣,bubuko.com

解析占位符的替换算法

标签:java   os   art   re   c   算法   

原文地址:http://my.oschina.net/xiangtao/blog/292154

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!