Belezs Luiz,
Mas mesmo assim dá uma olhada no String.format(), ou se preferir pode partir
para a classe Formatter que é mais completa. Vai ficar beeem mais fácil...
Falouzs!!
Claudio Weiler
-----Mensagem original-----
De: java-br@yahoogrupos.com.br [mailto:java-br@yahoogrupos.com.br] Em nome
de Luiz Henrique Santana
Enviada em: terça-feira, 17 de maio de 2011 14:27
Para: java-br@yahoogrupos.com.br
Assunto: Re: [java-br] Expressoes Regulares
Hehehe...
acho q expliquei mal, msm...
Mas consegui resolver.
Ficou assim:
Só fiz uma mudanca na segunda linha de replace, adicionando mais parametros.
Pq eu tinha colocado 2 como exemplo, pq a despesa tem 11 (!) parametros.
Ai ficou assim:
*
String expressao = "((ValorReceitaPrevista(%98598) +
ValorReceitaInicial(%9859%)) - (ValorDespesaPrevista(878%)) / 12) *
(ValorComponente(777) / ValorDespesa(1,2,3,4,5,6,7,8,9,10,11))";
expressao = expressao
*
*
.replaceAll(
**
"(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\
,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)",
**
"(\"$1\",\"$3\",\"$5\",\"$7\",\"$9\",\"$11\",\"$13\",\"$15\",\"$17\",\"$19\"
,\"$21\")")
**
expressao = expressao.replaceAll("(\\(\\d+\\))", "\\(\"$1\"\\)")
**
expressao = expressao.replaceAll("(\\(\\%\\d+\\))", "\\(\"$1\"\\)")
**
expressao = expressao.replaceAll("(\\(\\%\\d+\\%\\))",
"\\(\"$1\"\\)")
**
expressao = expressao.replaceAll("(\\(\\d+\\%\\))", "\\(\"$1\"\\)")
**
expressao = expressao.replaceAll("\\%\"", "\"\\%")
**
expressao = expressao.replaceAll("\"\\(", "\"")
**
expressao = expressao.replaceAll("\\)\"", "\"");
*
String expressao = "((ValorReceitaPrevista(%98598) +
ValorReceitaInicial(%9859%)) - (ValorDespesaPrevista(878%)) / 12) *
(ValorComponente(777) / ValorDespesa(1,2,3,4,5,6,7,8,9,10,11))"; expressao =
expressao .replaceAll(
"(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\
,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)(\\,)(\\d+)",
"(\"$1\",\"$3\",\"$5\",\"$7\",\"$9\",\"$11\",\"$13\",\"$15\",\"$17\",\"$19\"
,\"$21\")");
expressao = expressao.replaceAll("(\\(\\d+\\))", "\\(\"$1\"\\)"); expressao
= expressao.replaceAll("(\\(\\%\\d+\\))", "\\(\"$1\"\\)"); expressao =
expressao.replaceAll("(\\(\\%\\d+\\%\\))", "\\(\"$1\"\\)"); expressao =
expressao.replaceAll("(\\(\\d+\\%\\))", "\\(\"$1\"\\)"); expressao =
expressao.replaceAll("\\%\"", "\"\\%"); expressao =
expressao.replaceAll("\"\\(", "\""); expressao =
expressao.replaceAll("\\)\"", "\"");
O resultado foi:
*
<http://www.pdcase.com:8096/forum/posts/list/0/280.page#>
((ValorReceitaPrevista("%98598") + ValorReceitaInicial("%9859%")) -
(ValorDespesaPrevista("878%")) / 12) * (ValorComponente("777") /
ValorDespesa(("1","2","3","4","5","6","7","8","9","10","11")))
((ValorReceitaPrevista("%98598") + ValorReceitaInicial("%9859%")) -
(ValorDespesaPrevista("878%")) / 12) * (ValorComponente("777") /
ValorDespesa(("1","2","3","4","5","6","7","8","9","10","11"))) *
Vlw msm!!!
--
Att,
Luiz Henrique Santana
Analista de Sistemas
# msn => luizhenriquesantana@msn.com
# jabber/gtalk => luizhenriquesantana@gmail.com
# skype => rikg12
# twitter => www.twitter.com/luiz_h_santana
# blog => aqueleolhar.wordpress.com
::31 9151-5816::
*P** **Antes de imprimir** pense em seu compromisso com o Meio Ambiente.*
2011/5/17 Claudio Emanuel Weiler <cweiler@tre-pr.gov.br>
>
>
> Luiz,
>
> Rapaiz, intendi lhufas... :)
>
> Dá uma olhada no método String.format(), vai ser bem mais fácil.
>
> Ex. retornoFormatado = String.format("((v1(%d) + v2(%d))", int1, int2);
>
> Falouzs!!
>
>
> -----Mensagem original-----
> De: java-br@yahoogrupos.com.br [mailto:java-br@yahoogrupos.com.br] Em nome
> de Luiz Henrique Santana
> Enviada em: terça-feira, 17 de maio de 2011 13:30
> Para: java-br@yahoogrupos.com.br
> Assunto: [java-br] Expressoes Regulares
>
>
> Ola, Sres... bom dia!
>
> Tenho uma string informada pelo usuario que contem parametros. Preciso
> transformar esses parametros em string e faço isso colocando "" (aspas) pq
> esses parametros podem conter % (percent).
>
> Assim sendo, fiz aki meus replace e ta funcionando perfeitamente.:
>
> * expressao = "((ValorReceitaPrevista(%98598) +
> ValorReceitaInicial(%9859%)) - (ValorDespesaPrevista(878%)) / 12) *
> ValorComponente(777)";
> expressao = expressao.replaceAll("(\\(\\d+\\))", "\\(\"$1\"\\)");
> expressao = expressao.replaceAll("(\\(\\%\\d+\\))", "\\(\"$1\"\\)");
> expressao = expressao.replaceAll("(\\(\\%\\d+\\%\\))",
> "\\(\"$1\"\\)");
> expressao = expressao.replaceAll("(\\(\\d+\\%\\))", "\\(\"$1\"\\)");
> expressao = expressao.replaceAll("\\%\"", "\"\\%");
> expressao = expressao.replaceAll("\"\\(", "\"");
> expressao = expressao.replaceAll("\\)\"", "\"");*
>
> Só que algumas dessas funcoes da primeira linha podem conter parametros
> compostos separados por virgula, como abaixo:
>
> * expressao = "((ValorReceitaPrevista(%98598) +
> ValorReceitaInicial(%9859%)) - (ValorDespesaPrevista(878%)) / 12) *
> (ValorComponente(777) / ValorDespesa(89,78))";
> *
> Ai nesse caso falta um replace, neh... pra tratar dessa virgula.
>
> Se alguem puder ajudar... desde ja agradeco.
>
> Abs!
>
--------
A Visão do TRE-PR é ser reconhecido como instituição pública de excelência, indispensável para o aperfeiçoamento da democracia.
Todos os eleitores de Curitiba deverão fazer seu recadastramento biométrico. Maiores informações em nosso site: www.tre-pr.jus.br
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
0 comentários:
Postar um comentário