Here you can find the source of replaceKeyword(String messageTemplate, Map
public static String replaceKeyword(String messageTemplate, Map<String, Object> args, String key)
//package com.java2s; /* Copyright (c) 2016 W.T.J. Riezebos * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License.//from ww w .j av a 2 s . c om */ import java.util.Map; public class Main { private static final int DEFAULT_ADDITIONAL_BUFFERSIZE = 10; public static String replaceKeyword(String messageTemplate, Map<String, Object> args, String key) { Object value = args.get(key); if (value == null) value = ""; return messageTemplate.replaceAll("\\$\\{" + regExpescape(key) + "\\}", regExpescape(String.valueOf(value))); } public static String regExpescape(String value) { StringBuffer sb = new StringBuffer(value.length() + DEFAULT_ADDITIONAL_BUFFERSIZE); for (int i = 0; i < value.length(); i++) sb.append(regExpescape(value.charAt(i))); return sb.toString(); } public static String regExpescape(char c) { switch (c) { case ',': case '*': case '+': case '?': case '{': case '}': case '$': case '.': case '^': case '(': case '[': case ']': case '|': case ')': return "\\" + c; default: return String.valueOf(c); } } }