package prjValidaCPF; import java.util.Scanner; public class ValidarCPF { public static void main(String[] args) { String cpf = "", verOri = "", ver1 = "", ver2 = ""; //CRIA AS VARIAVEIS CPF E DE VERIFICACAO Scanner ler = new Scanner(System.in); System.out.println("Digite o CPF: "); cpf = ler.nextLine(); //LE O CPF if (cpf.length() > 11 || cpf.length() < 11) { //IF I M E N S O PRA VALIDAR O CPF System.out.println("CPF Inválido!"); //SE TIVER MENOS OU MAIS QUE 11 CARACTERES JA NAO E CPF (SEM PONTOS E HIFEN) } else { verOri = cpf.substring(9, 11); //PEGA OS DOIS ULTIMOS DIGITOS DO CPF (VERIFICADOR) int multx = 10; int n; int somatd = 0; for (int i = 0; i < 9; i++) { //FOR PRA MULTIPLICAR E SOMAR OS NUMEROS n = Integer.parseInt(cpf.substring(i, i + 1)); somatd = somatd + (multx * n); multx--; } //AQUI E A LOGICA PRA VALIDAR O 1 DIGITO int resto = 0; resto = somatd % 11; int verificar = 0; verificar = 11 - resto; if (verificar > 9) { ver1 = "0"; verificar = 0; } else { ver1 = Integer.toString(verificar); } //LOGICA TERMINA AQUI <- multx = 11; //RESETA OS VALORES PRA VERIFICAR O 2 DIGITO VERIFICADOR somatd = 0; for (int i = 0; i < 9; i++) { //FOR PRA MULTIPLICAR E SOMAR OS NUMEROS n = Integer.parseInt(cpf.substring(i, i + 1)); somatd = somatd + (multx * n); multx--; } verificar *= 2; //MULTIPLICACAO EXTRA DO 1 DIGITO VERIFICADOR PEGO LA EM CIMA somatd = somatd + verificar; //AQUI E A LOGICA PRA VALIDAR O 2 DIGITO resto = 0; resto = somatd % 11; verificar = 11 - resto; if (verificar > 9) { ver2 = "0"; } else { ver2 = Integer.toString(verificar); } //LOGICA TERMINA AQUI <- System.out.println(ver1 + ver2); // ESSES SOUTS SAO PRA DEBUG System.out.println(verOri); //VOILÀ if (verOri.equals(ver1 + ver2)) System.out.println("CPF Válido!"); else System.out.println("CPF Inválido!"); } } }