O símbolo $ em expressões regulares é reservado. “Matches the ending position of the string or the position just before a string-ending newline. In line-based tools, it matches the ending position of any line.”
Faça assim: mensagem.replaceFirst(“Cifrão”,"\$");
nel
Boa tarde.
Altera para:
mensagem.replace("Cifrão","$");
ou como o Pablo indicou, que é uma melhor alternativa, eu diria.
Abraços.
R
Rafa_Ferrari
como o pablosaraiva falo
é reservado entao voce tem que colocar as contra baras \ na frente do $
abraco
mario.fts
String mensagem = "Texto com Cifrão";
String result = mensagem.replaceFirst("Cifrão","\$");
System.out.println(result);
I
igor.cardoso
Erm, estou num mato sem cachorro!
não posso usar o Replace pois atrapalha a logica de minha aplicação.
não posso usar o "//$" pois o dado irá para um banco de dados, sendo assim a informação não seria interpletada corretamente.
e os valores são definidos pelos usuarios, então uma hora ou outra vem um "R$ 1.800,00" pro java botar no db. ai da a exceção
gato encontrado:
Stringvalor="R$ 1.800,00";Stringresultado="O valor é #1";if(valor.contains("$")){valor=valor.replace("$","#S#");resultado.replaceFirst("#1",valor);resultado.replace("#S#","$");}else{resultado.replaceFirst("#1",valor);}System.out.println(resultado);
qualquer solução melhor que está é super bem vinda!
ViniGodoy
Você pode usar o “\$”, porque a \ é um caracter de escape. Ela não aparecerá no resultado final.
De qualquer forma, reveja o seu programa. O usuário deveria digitar apenas valores, e não formatos.
thundercas
igor,
Tem certeza que faz sentido guardar o cifrão ‘$’ em seu banco?? Isso é bastante problemático, pois caso posteriormente você necessite deste campo do banco para realizar algum cálculo, será necessário retirar o cifrão antes.
O ideal é guardar apenas os números e, caso necessite exibir o cifrão na tela, adicione-o no momento da exibição.
Abs
I
igor.cardoso
ViniGodoy,
O campo que recebo esses valores é o nome de planos.
Alguns planos tem o valor do mesmo R$
sendo assim não posso barrar o “R$”
thundercas,
Sim, preciso armazenar essa informação! é um campo do tipo CLOB(Oracle) então não irei usar calculos usando ele como base.