62,634
社区成员




public static void main(String[] args) {
String s1 = "r3434";
String v1 = "变量1";
String s2 = "r0002";
String v2 = "变量2";
Map<String, String> map = new HashMap<String, String>();
map.put(s1, v1);
map.put(s2, v2);
String str="99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Set<String> set = map.keySet();
Iterator<String> iter = set.iterator();
while(iter.hasNext()){
String key = iter.next();
str = str.replace("${" + key + "}", map.get(key));
}
System.out.println(str);
}
public static void main(String[] args) {
String str = "99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Pattern p = Pattern.compile("\\$\\{(.*?)}");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
str.replace("${" + map.key + "}", map.value);
String map="{\"r3434\":\"变量1\",\"r0002\":\"变量2\"}";
ScriptEngineManager sem=new ScriptEngineManager();
//使用jdk1.6的脚本引擎用于将你这个map作为js的对象来进行解析
ScriptEngine se=sem.getEngineByName("javascript");
se.put("object", map);
String str="99dfasdfa${r3434}dfaerasdfasdf${r0002}334234";
Pattern p=Pattern.compile("\\$\\{(.*?)}");
Matcher m=p.matcher(str);
StringBuffer sb=new StringBuffer();
while(m.find()){
//System.out.println(m.group(1));
se.put("key", m.group(1));
se.eval("var obj=eval(\"(\"+object+\")\");var value=obj[key];");
m.appendReplacement(sb, (String)se.get("value"));
}
m.appendTail(sb);
System.out.println(sb);