Olá,
Estou tentando validar um CPF pela primeira vez, está tudo pronto mas não consigo usar o if para verificar se são iguais e prosseguir, alguém sabe me dizer o que pode ser? tem vezes que ele retorna erro do Index do substring não existir, não tem sentido algum!
String cpf = “”, total = “”; int total1 = 0, total2 = 0;
Bom dia Abner,
Eu estou seguindo este site ai mesmo, mas no final da validação ele fala que os 2 resultados são diferentes e não entra na estrutura do If para validão, porém quando eu uso o Debug ele me mostra que os valores são exatamente iguais.
String cpf = “”, total = “”; int total1 = 0, total2 = 0;
if(jrb_Pessoa_Fisica.isSelected()==true){cpf=jtf_CPF_CNPJ.getText().replace(".","").replace("-","")+"";//Recebe valor do campo de texto CPF sem pontuação.if(cpf.length()==11){//Verifica se o CPF tem todos os caracteres.//!!! NÃO ALTERAR NENHUMA ESTRUTURA À PARTIR DAQUI. !!!for(inti=0;i<9;i++){//!!! Executa a 1ª etapa da verificação.total1+=Integer.parseInt(cpf.charAt(i)+"")*(i-10)*-1;}total1=(total1*10)%11;// Recebe a sobra da equação.if(total1==10){total1=0;}for(inti=0;i<10;i++){total2+=Integer.parseInt(cpf.charAt(i)+"")*(i-11)*-1;}total2=(total2*10)%11;if(total2==10){total2=0;}total=total1+""+total2+"";if(total==cpf.substring(9,11)){JOptionPane.showMessageDialog(null,"FINALMENTE");}}}
B
Bruno_R_Morillo1 like
Eu consegui fazer a validação substituindo os valores por Inteiros, mas como String não foi possível realizar a validação, acaba gastando mais código do que o necessário.
Olha, funcionou tranquilo. Você só queria mostrar se era válido ou não?
B
Bruno_R_Morillo
Sim, só mostrar se é válido ou não, eu iria colocar para entrar no else{} o aviso de CPF inválido OnFocusLost.
Mas como vai só utilizar 1 vez em todo o formulário não tem perda de desempenho visível, vou aceitar que funcionou e passar para o próximo hahaha. Obrigado ^^
rodriguesabner1 like
Kkkkkkk, beleza
B
Bruno_R_Morillo
Caso alguém precise, fiz uma função para verificar e validar o CPF, basta enviar o parâmetro cpf.replace(".", “”).replace("-", “”); como String.
publicstaticbooleanvalida_CPF(Stringcpf){//VERIFICAÇÃO DE DADOS SEM DEBUGAR. (Colocar dentro do FOR que quer verificar o cpf)./*System.out.println(i); System.out.println("CPF1: " + cpf2); System.out.println("I: " + i); System.out.println("arrayCPF[i]: " + arrayCPF[i]); System.out.println("Multiplicação do arrayCPF[i]: " + (10 - i)); System.out.println("Valor multiplicado Array: " + arrayCPF[i] * (10 - i));*/inti=0;int[]arrayCPF=newint[11];intcpf1=0,cpf2=0;for(i=0;i<11;i++){//For que auxilia na transferencia de valores do CPF para ArrayarrayCPF[i]=Integer.parseInt(cpf.charAt(i)+"");if(i<9){cpf1+=arrayCPF[i]*(10-i);}if(i<10){cpf2+=arrayCPF[i]*(11-i);}}cpf1=(cpf1*10)%11;cpf2=(cpf2*10)%11;if(cpf1>9){cpf1=0;}if(cpf2>9){cpf2=1;}if(cpf1==arrayCPF[9]&&cpf2==arrayCPF[10]){returntrue;}else{returnfalse;}}