String - urgente

6 respostas
Marques

Pessoal,

Preciso transformar o string 1.500,00 em 150000 e então tentei o método abaixo, porém em teste1 ele devolve “”
Como eu faço essa transformação e por que as instruções abaio não funcionam?

Obs estou usando a versao 1.4.2.

String teste = “1.500,00”;
String teste1= teste.replaceAll(".", “”);

6 Respostas

cv1

replaceAll recebe uma expressao regular no primeiro parametro, e “.” eh uma expressao regular que quer dizer “qualquer caractere”. Se voce quiser fazer desse jeito, precisa falar pro Java ignorar aquele ponto:

String s = "1,500.00"; String s1 = s.replaceAll("\.|,", "");

Marques

cv,

Como vc costuma fazer isso? Existe outra forma mais elegante?

[]s,

Marques

cv1

Nao, essa eh a maneira mais simples/elegante que eu conheco… (em compensacao, existem mais ou menos 5000000 jeitos de fazer isso ficar horrivel, usando StringTokenizer e/ou iterando sobre os caracteres na unha, ou combinacoes de ambos…)

Marques

Falow cv,

Brigadão mesmo!!!

T

No Java 5.0 tem um cara chamado Pattern.quote, que é feito para esses casos chatos de ter de efetuar o “escape” de todos os caracteres especiais.

quote

public static String quote(String s)

Returns a literal pattern String for the specified String.

This method produces a String that can be used to create a Pattern that would match the string s as if it were a literal pattern.
Metacharacters or escape sequences in the input sequence will be given no special meaning.

Parameters:
    s - The string to be literalized 
Returns:
    A literal string replacement
Since:
    1.5

(E para o Java 1.3, que volta e meia tenho de usar (iPlanet, Websphere etc.) tenho um método utilitário, que faz exatamente pelo método horrível de ficar usando indexOf e outras coisas mais chatas.)

Guilherme_Silveira

lembrando que “.” na expressao regular quer dizer qualquer coisa, por isso virou tudo vazio

Criado 18 de maio de 2005
Ultima resposta 19 de mai. de 2005
Respostas 6
Participantes 4