替换文本中的变量:建议?
-
18-09-2019 - |
题
我正在寻找一个不错的模板引擎或一小段代码来扩展 Java 字符串中类似 Ant 的变量。例子:
String result = expand ("${firstName} ${familyName}", map);
至少应该支持 java.util.Map
但是可以处理 bean 或递归查找或映射/对象列表中的查找的东西也将受到欢迎。
建议?
[编辑]回复豆腐啤酒:没有嵌套,只有有效的 Java 标识符 {}
. 。任何之外的东西 ${}
应逐字复制。 $$
应该成为 $``. If that's not possible ${dollar}
应该扩展到单个 $
(这样你就可以表达 15.00 $
).
其他提示
使用 StringTemplate的为了实现expand
:
void expand(String template, Map<String,String> map) {
StringTemplate st = new StringTemplate(template);
for (Map.Entry<String, String> attribute : map) {
st.setAttribute(attribute.getKey(), attribute.getValue());
}
return st.toString();
}
看一看的Freemarker OCH速度,两者都是模板引擎
不隶属于 StackOverflow