Duvidas com isLetter e replace

3 respostas
J

Pessoal, boa tarde!

estou tentando fazer uma função que verifique uma string composta de letras e numeros e remova as letras deixando apenas os numero…

for(int i=0; i<documento.length(); i++){
            if(Character.isLetter(documento.charAt(i))){
               documento.replace(String.valueOf(documento.charAt(i)),"");
            }

tentei esse codigo ai em cima mas não deu certo nem deu mensagem de erro…
Essa coisa que tentei fazer da certo???

valeu…

3 Respostas

J

Seu codigo funciona, só não se esqueça que String’s são inalteraveis, então o metodo replace() cria uma nova String, não altera a original. Tem que colocar um i-- dentro do if tambem, pra poder voltar uma posição quando encontrar uma letra.

E já que você quer deixar só numeros, não seria mais adequado verificar se o caracter é numero, e se não for excluir? Pois pode não ser letra, mas tambem não ser numero.

for(int i=0; i<documento.length(); i++){ if(Character.isLetter(documento.charAt(i))){ documento = documento.replace(String.valueOf(documento.charAt(i)),""); i--; } }

Eu faria assim:

String documento = "ab12d4ad5f78a/234@#$@#;"; documento = documento.replaceAll("[^0-9]", "");

J

Outra alternativa seria usar StringBuffer. Essa classe tem vários métodos interessantes.

J

Jair, valeu a ajuda, funcionou na boa…

Criado 11 de julho de 2006
Ultima resposta 12 de jul. de 2006
Respostas 3
Participantes 3