Substitua as variáveis ??em texto: Sugestões?
-
18-09-2019 - |
Pergunta
Eu estou procurando um modelo de motor agradável ou pequeno pedaço de código para expandir Ant-como variáveis ??em uma string em Java. Exemplo:
String result = expand ("${firstName} ${familyName}", map);
Deve pelo menos java.util.Map
apoio, mas algo que pode lidar com feijão ou pesquisas recursivas ou pesquisas em uma lista de mapas / objetos seriam bem-vindos também.
Sugestões?
[EDIT] Em resposta a TofuBeer: No assentamento, apenas identificadores Java válidos de circulação no {}
. Qualquer coisa fora ${}
devem ser copiados textualmente. $$
deve tornar-se $``. If that's not possible ${dollar}
deve expandir-se para um único $
(assim você pode expressar 15.00 $
).
Solução
StrSubstitutor de Commons Lang não muito bonito o que você está pedindo
Outras dicas
StringTemplate , a fim de implementar 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();
}
Tenha um olhar em Freemarker och Velocity, ambos são modelo de motores