import java.util.regex.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
String mudelString = "Hello, ${ name }! You are learning ${ lang }!";
Map<String, String> dataMap = new HashMap(){{put("name", "Bob");put("lang","Java");}};
String result = mudelString(mudelString,dataMap);
System.out.println(result);
}
public static String mudelString(String mudelString, Map<String, String> dataMap) {
String returnStr= new String(mudelString);
Pattern p = Pattern.compile("\\$\\{\\s*\\w*\\s*\\}");
Matcher m = p.matcher(mudelString);
while (m.find()) {
String findStr = returnStr.substring(m.start(),m.end());//匹配到 ${ name }
String keyWord = returnStr.substring(m.start()+2,m.end()-1).trim();//获取 name
returnStr = returnStr.substring(0,m.start())+dataMap.get(keyWord)+returnStr.substring(m.end());//替换 ${ name }
m = p.matcher(returnStr);
}
return returnStr;
}
}
佐上楼兰