import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
class Ideone
{
{
String s
= "${abc.xzy}/demo/${ttt.bbb}\ntest${kkk.mmm}"; map.put("abc.xzy", "World");
map.put("ttt.bbb", "Hello");
map.put("kkk.mmm", "System");
Matcher m = Pattern.compile("\\$\\{([^{}]+)\\}").matcher(s);
while (m.find()) {
String value
= map.
get(m.
group(1)); m.appendReplacement(result, value != null ? value : m.group());
}
m.appendTail(result);
System.
out.
println(result.
toString());
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcyA9ICIke2FiYy54enl9L2RlbW8vJHt0dHQuYmJifVxudGVzdCR7a2trLm1tbX0iOwoJCU1hcDxTdHJpbmcsIFN0cmluZz4gbWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+KCk7CiAgICAgICAgbWFwLnB1dCgiYWJjLnh6eSIsICJXb3JsZCIpOwogICAgICAgIG1hcC5wdXQoInR0dC5iYmIiLCAiSGVsbG8iKTsKICAgICAgICBtYXAucHV0KCJra2subW1tIiwgIlN5c3RlbSIpOwoJCVN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CgkJTWF0Y2hlciBtID0gUGF0dGVybi5jb21waWxlKCJcXCRcXHsoW157fV0rKVxcfSIpLm1hdGNoZXIocyk7CgkJd2hpbGUgKG0uZmluZCgpKSB7CiAgICAJCVN0cmluZyB2YWx1ZSA9IG1hcC5nZXQobS5ncm91cCgxKSk7CiAgICAJCW0uYXBwZW5kUmVwbGFjZW1lbnQocmVzdWx0LCB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBtLmdyb3VwKCkpOwoJCX0KCQltLmFwcGVuZFRhaWwocmVzdWx0KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0LnRvU3RyaW5nKCkpOwoKCX0KfQ==