Verificar String com expressão regular

6 respostas
danferreir4

Seguinte pessoal,

Estou fazendo um trabalho sobre uma locadora de filmes, e na parte de cadastro de cliente estou querendo "validar" para que o usuário não digite nenhum outro caracter que não seja dígito. Só que o método replaceAll(), não está trocando os não-dígitos por vazio.

Alguém me dá uma luz?

Obs: Não tive tratamentos de Exceção nem expressões regulares... só andei dando uma pesquisada!

[...]

String aux = "";
		do {
			if (ok)
				j.showMessageDialog(null, "CPF inválido!", NOME_LOCADORA, ERROR); //j = JOptionPane
				aux = j.showInputDialog(null, "CPF:\nSomente números.", NOME_LOCADORA, PLAIN);
				ok = true;
				aux.replaceAll("[^0-9]", ""); // Aqui que a bagaça pega fogo
		} while ((aux.length() != 11));
		String cpf = (aux.substring(0, 3) + "." + aux.substring(3, 6) + "." + aux.substring(6, 9) + "-" + aux.substring(9, 11));
		System.err.println(cpf);
		setCpf(cpf);
[...]

6 Respostas

T

Cara, da uma olhada nesse topico: http://www.guj.com.br/posts/list/29456.java

Abraço!

danferreir4

Obrigado truck1n, mas eu não posso utilizar nada de GUI ao trabalho, pois ainda não tive essa matéria. Estou na 3ª fase de Ciência da Computação, e interface gráfica eu só terei na 4ª.

thiago.correa

A princípio testei aqui e funcionou!

danferreir4

Sim, funciona… só que eu quero impedir que o usuário digite um cpf tipo abc.def.ghi-@~
Minha idéia é não deixar o usuário entrar com isso, pedindo sempre o valor correto para ele. O problema é que ainda não tive tratamento de exceção no curso, assim não podendo implementar algo sobre isso. :cry:

Grato e no aguardo…

T
// Errado
aux.replaceAll("[^0-9]", ""); // isto não altera o valor da variável aux - lembre-se, strings são imutáveis, mas variáveis não são
// Certo
aux = aux.replaceAll("[^0-9]", ""); // é o que você quer
danferreir4

Cara, não acredito que seja só isso… achei que a minha expressão poderia estar errada, pois o método suporta regex.

Obrigadão, Thingol… ahh, e obrigado à todos que tentaram ajudar tmbm.

Criado 28 de maio de 2009
Ultima resposta 29 de mai. de 2009
Respostas 6
Participantes 4