【发布时间】:2018-07-27 21:41:42
【问题描述】:
我正在使用StringSubstitutor 按照用户定义的模板完成字符串,例如“I program in ${language}”。
Map valuesMap = HashMap();
valuesMap.put("language", "Java");
String templateString = "I program in ${language}.";
StrSubstitutor sub = new StrSubstitutor(valuesMap);
String resolvedString = sub.replace(templateString);
给出“我用 Java 编程”。
这很好用,但有时模板需要包含一些替换变量的转换,最常见的是转换它的大小写。我真正想做的是允许类似于“我用 ${language:upper} 编程”或“我用 ${upper(language)} 编程”这样的模式,这样上面的结果就是“我编程在JAVA中”
所以我的问题是:
-
StringSubstitutor是否已经支持此功能(如果支持,语法是什么)?否则 - 有没有办法在
StringSubstitutor之上构建来支持这个功能?或 - 是否有其他可用的库可以满足我的需求?
【问题讨论】:
标签: java text apache-commons substitution uppercase