package org.zstack.utils.data; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringTemplate { public static String substitute(String text, Map<String, String> tokens) { Pattern pattern = Pattern.compile("\\{(.+?)\\}"); Matcher matcher = pattern.matcher(text); StringBuffer buffer = new StringBuffer(); while (matcher.find()) { String replacement = tokens.get(matcher.group(1)); if (replacement != null) { matcher.appendReplacement(buffer, ""); buffer.append(replacement); } } matcher.appendTail(buffer); return buffer.toString(); } public static String join(Collection<String> lst, String delimiter) { Iterator i = lst.iterator(); StringBuilder sb = new StringBuilder(); while (true) { sb.append(i.next()); if (i.hasNext()) { sb.append(delimiter); } else { break; } } return sb.toString(); } }