Here you can find the source of replaceParameters(final String value, final Map
public static String replaceParameters(final String value, final Map<String, String> paramMap)
//package com.java2s; /*//from w w w . j ava 2s . co m * Copyright 2017 Crown Copyright * * 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. */ import java.util.Map; public class Main { public static String replaceParameters(final String value, final Map<String, String> paramMap) { final StringBuilder sb = new StringBuilder(); int paramStart = -1; char[] chars = value.toCharArray(); for (int i = 0; i < chars.length; i++) { switch (chars[i]) { case '\\': if (paramStart == -1) { if (i + 1 < chars.length && (chars[i + 1] == '\\' || chars[i + 1] == '$')) { i++; sb.append(chars[i]); } } break; case '$': if (paramStart == -1) { if (i + 1 < chars.length && chars[i + 1] == '{') { paramStart = i; } else { sb.append(chars[i]); } } break; case '}': if (paramStart != -1) { final String key = value.substring(paramStart + 2, i); String replacement = paramMap.get(key); if (replacement == null) { replacement = ""; } sb.append(replacement); paramStart = -1; } else { sb.append(chars[i]); } break; default: if (paramStart == -1) { sb.append(chars[i]); } } } return sb.toString(); } }