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 $).

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top