Validar CPF

2 respostas
java
Henri199

Estou tentando validar CPF, mas simplesmente não funciona, não sei no que estou errado.
identar texto pré-formatado por 4 espaços

public void verificar(){
int dig1,dig2,erro;

char[] CPF=getCPF().toCharArray();
dig1=dig2=erro=0;

int s1= Integer.parseInt(String.valueOf(CPF[0]));

int s2= Integer.parseInt(String.valueOf(CPF[1]));

int s3= Integer.parseInt(String.valueOf(CPF[2]));

int s4= Integer.parseInt(String.valueOf(CPF[3]));

int s5= Integer.parseInt(String.valueOf(CPF[4]));

int s6= Integer.parseInt(String.valueOf(CPF[5]));

int s7= Integer.parseInt(String.valueOf(CPF[6]));

int s8= Integer.parseInt(String.valueOf(CPF[7]));

int s9= Integer.parseInt(String.valueOf(CPF[8]));

int s10= Integer.parseInt(String.valueOf(CPF[9]));
int soma= ((s1*10)+(s2*9)+(s3*8)+(s4*7)+(s5*6)+(s6*5)+(s7*4)+(s8*3)+(s9*2)+(s10*2));

int resto = (soma%11);
if(resto<2){
dig1=0;


}

else{

dig1=11-resto;

}
 soma= ((s1+1)+(s2+10)+(s3+9)+(s4+8)+(s5+7)+(s6+6)+(s5+5)+(s4+4)+(s3+3)+(s2+2)+(s1+1));
 
 resto=(soma%11);
 if(resto<2){
dig2=0;


}

else{

dig2=11-resto;

}

int a = Integer.parseInt(String.valueOf(CPF[12]));

int b = Integer.parseInt(String.valueOf(CPF[13]));

if(dig1==a && dig2==b)

{

}

}}

2 Respostas

I

Visite Dicas de Programação - Validação de CPF e perceba que está pulando etapas aqui:

Além disso, sugiro fazer uso de arrays.

staroski

Fiz uma implementação um pouco diferente:
https://github.com/staroski/tools/blob/master/brdocs/br/com/staroski/tools/brdocs/Documentos.java

Criado 15 de junho de 2020
Ultima resposta 15 de jun. de 2020
Respostas 2
Participantes 3