Expressões regulares

Sempre que vou criar uma classe que tenha cpf uso esse código para validar oque o usuário digita

public void setCPF(String CPF) {
        if (CPF.matches("^(\\d{3}[\\.-]){3}\\d{2}$")) {
            this.CPF = CPF;
        }
    }

Tá correto? é uma boa pratica para iniciantes?

Cria uma classe que valida CPF, assim você chama onde precisar.

1 curtida

Ter uma classe específica como o @javaflex mencionou é realmente melhor.

No seu exemplo porém, tem um problema bem grave em geral: o código falha silenciosamente!

O que é isso? Se eu chamo o método setCPF e nada acontece, eu espero que o CPF tenha sido aceito.
Mas se passo um CPF inválido, o sistema simplemente nao faz nada e nao dá nenhum aviso que falhou.

Uma abordagem melhor nesse caso é fazer o sistema lançar uma Exception caso o CPF seja inválido.

Amigo, use este método abaixo, ele valida um CPF por completo.

1 curtida