Discuss / Java / 正则搜索匹配替换 练习

正则搜索匹配替换 练习

Topic source

保持热爱

#1 Created at ... [Delete] [Delete and Lock User]
public String render(Map<String, Object> data) {
    Matcher m = pattern.matcher(template);
    StringBuilder sb = new StringBuilder();
    while (m.find()) {
        String key = m.group(1);
        if (!data.containsKey(key)) {
            continue;
        }
        m.appendReplacement(sb, data.get(key).toString());
    }
    m.appendTail(sb);
    return sb.toString();
}

保持热爱

#2 Created at ... [Delete] [Delete and Lock User]

优化

public String render(Map<String, Object> data) {
    Matcher m = pattern.matcher(template);
    StringBuilder sb = new StringBuilder();
    while (m.find()) {
        String key = m.group(1);
        if (data.containsKey(key)) {
            Object value = data.get(key);
            String str = "";
            if (value != null) {
                if (value instanceof String) {
                    str = (String) value;
                } else {
                    str = String.valueOf(value);
                }
            }
            m.appendReplacement(sb, str);
        }
    }
    m.appendTail(sb);
    return sb.toString();
}

  • 1

Reply