Ha varias formas… tudo vai depender da forma como voce guarda os dados… pode ser algo como
HashTableh=newHashTable();h.put("${VAR_1}","xxx");h.put("${VAR_2}","yyy");h.put("${VAR_3}","zzz");Stringstr="${VAR_1} aaa sei la ${VAR_2} e o ${VAR_3}";eentaofazerIteratoriter=h.entrySet().iterator();while(iter.hasNext()){Map.Entryentry=(Map.Entry)iter.next();str=str.replaceAll(entry.getKey(),entry.getValue());}
ou entao, qdo vc soh tem os indices ( 1, 2, 3 etc ), vc pode montar a variavel dinamicamente… algo como
fica mais facil de dar um exemplo melhor sabendo como vc armazena os dados ou como pretende fazer tal coisa…
Rafael
cv1
Ewww!
Pq nao usar o MessageFormat!? :(
String[] s1 = new String[] { "Mundo", "bobo" };String[] s2 = new String[] { "GUJ", "o programador mais bobo do fórum" };System.out.println(MessageFormat.format("Ola, {0}, eu sou {1}!", s1));System.out.println(MessageFormat.format("Ola, {0}, eu sou {1}!", s2));
;) :D
Rafael_Steil
Tambem :mrgreen:
O MessageFormat se encaixa perfeito quando voce tem algum padrao que se encaixe no formato dele!
Rafael
B
bmcneto
Essa do MessageFormat foi uma dica muito boa, pois não conhecia, mas neste caso acho que ele não pode ser aplicado pois ele trata apenas com índices como por exemplo: {0} {1} … {n}, mas eu to tratando com nomes de variáveis como: {VAR_1} {VAR_2} …
O que to querendo fazer eh uma coisa parecida com o JasperReport só que mais simples, sem usar xml, onde passo um comando sql defino onde ficará as variáveis e obtenho uma consulta rapidinho em html mesmo, nesse caso as variáveis vem do resultset obtido da consulta.
B
bmcneto
Sim e o replaceAll dá o seguinte erro:
java.util.regex.PatternSyntaxException: Illegal repetition near index 0
${teste1}
No caso de ter o seguinte código:
Ai ele substituio tudo onde aparece qualquer um dos caracteres da expressão ${teste1}, obtendo o resultado:
23
cv1
Acho que usar replaceAll nesse caso eh uma pessima ideia. Ja tem um monte de template engines prontas implorando pra ser usadas. Fica mais rapido, mais facil de manter e mais seguro, tambem…