Sou iniciante em programação, estou fazendo trabalho para faculdade, e no sistema tenho que validar CPF, só pergunto para professores eles falam que na internet tem, mas não consegui usar os codigos que eu achei no meu sistema,
estou usando um JTextField normal, sem mascara sem nada, sómente digitando numeros, ai queria validar o CPF antes de salvar no banco de dados,
eu pensei em colocar o código na ação do botão salvar, antes de enviar os campos para banco de dados, mas não consegui fazer isso, se alguem puder me ajudar, porque no trabalho isso é importante o trabalho esteja validando CPF.
Levando em consideração que não existe CPF com todos os números iguais, taí o código
public class ValidadorCPF {
public boolean validarCPF(String s_aux) {
if (s_aux.length() == 11) {
String cpf = s_aux;
char c0 = cpf.charAt(0);
char c1 = cpf.charAt(1);
char c2 = cpf.charAt(2);
char c3 = cpf.charAt(3);
char c4 = cpf.charAt(4);
char c5 = cpf.charAt(5);
char c6 = cpf.charAt(6);
char c7 = cpf.charAt(7);
char c8 = cpf.charAt(8);
char c9 = cpf.charAt(9);
char c10 = cpf.charAt(10);
//---------verificar se todos os dígitos do CPF são iguais
if (c0 == c1 && c0 == c2 && c0 == c3 && c0 == c4 && c0 == c5 && c0 == c6 && c0 == c7 && c0 == c8 && c0 == c9 && c0 == c10) {
return false;
}
int d1, d2;
int digito1, digito2, resto;
int digitoCPF;
String nDigResult;
d1 = d2 = 0;
digito1 = digito2 = resto = 0;
for (int n_Count = 1; n_Count < s_aux.length() - 1; n_Count++) {
digitoCPF = Integer.valueOf(s_aux.substring(n_Count - 1, n_Count)).intValue();
//--------- Multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.
d1 = d1 + (11 - n_Count) * digitoCPF;
//--------- Para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.
d2 = d2 + (12 - n_Count) * digitoCPF;
}
//--------- Primeiro resto da divisão por 11.
resto = (d1 % 11);
//--------- Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2) {
digito1 = 0;
} else {
digito1 = 11 - resto;
}
d2 += 2 * digito1;
//--------- Segundo resto da divisão por 11.
resto = (d2 % 11);
//--------- Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2) {
digito2 = 0;
} else {
digito2 = 11 - resto;
}
//--------- Digito verificador do CPF que está sendo validado.
String nDigVerific = s_aux.substring(s_aux.length() - 2, s_aux.length());
//--------- Concatenando o primeiro resto com o segundo.
nDigResult = String.valueOf(digito1) + String.valueOf(digito2);
//--------- Comparar o digito verificador do cpf com o primeiro resto + o segundo resto.
return nDigVerific.equals(nDigResult);
}
return false;
}
}