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!");
}
}
}