estava procurando aqui no guj algum codigo que validasse cpf. Encontrei muitos, no entando a maioria incompletos.
Estou deixando para os amigos o código que desenvolvi. Peço para aqueles que conseguirem encurtá-lo postar para a gente.
[]´s a todos.
public class ValidarCpf {
private static int primeiroDigitoVerificardor;
private static int segundoDigitoVerificardor;
private final static String ZERO = "[telefone removido]";
private final static String UM = "[telefone removido]";
private final static String DOIS = "[telefone removido]";
private final static String TRES = "[telefone removido]";
private final static String QUATRO = "[telefone removido]";
private final static String CINCO = "[telefone removido]";
private final static String SEIS = "[telefone removido]";
private final static String SETE = "[telefone removido]";
private final static String OITO = "[telefone removido]";
private final static String NOVE = "[telefone removido]";
public static boolean validarCpf(String cpf){
calculoPrimeiroDigito(cpf);
return verificaQuantidade(cpf);
}
public static void calculoPrimeiroDigito(String cpf){
cpf = cpf.substring(0,9);
final char numeros[] = new char[cpf.length()];
final String modificar[] = new String[numeros.length];
final int valores[] = new int[numeros.length];
final int resultado[] = new int[numeros.length];
final int resultadoComDigito[] = new int[10];
int total = 0;
int sequencia = 10;
int resultadoDivisao = 0;
for (int i = 0; i < numeros.length; i++) {
numeros[i] = cpf.charAt(i);
modificar[i] =Character.toString(numeros[i]);
valores[i] = Integer.parseInt(modificar[i]);
resultado[i] = (valores[i] *(sequencia - i));
total += resultado[i];
}
resultadoDivisao = (total % 11);
if(resultadoDivisao < 2){
primeiroDigitoVerificardor = 0;
}else{
primeiroDigitoVerificardor = (11 - resultadoDivisao);
}
for (int i = 0; i <numeros.length; i++) {
resultadoComDigito[i] = valores[i];
}
resultadoComDigito[9] = primeiroDigitoVerificardor;
calculoSegundoDigito(resultadoComDigito);
}
public static void calculoSegundoDigito(int[] resultadoComDigito){
int sequencia = 11;
int total =0;
int resultado[] = new int[resultadoComDigito.length];
for (int i = 0; i < resultadoComDigito.length; i++) {
resultado[i] = (resultadoComDigito[i]* (sequencia - i));
total += resultado[i];
}
total = (total % 11);
if(total < 2){
segundoDigitoVerificardor = 0;
}else{
segundoDigitoVerificardor = (11 - total);
}
}
public static boolean verificaQuantidade(String cpf){
if((cpf.length() < 11)|| (cpf.equals(ZERO))|| (cpf.equals(UM))||(cpf.equals(DOIS))||
(cpf.equals(TRES))||(cpf.equals(QUATRO))||(cpf.equals(CINCO))||(cpf.equals(SEIS))||
(cpf.equals(SETE))|| (cpf.equals(OITO))||(cpf.equals(NOVE))){
return false;
}else{
return verificaDigitos(cpf);
}
}
public static boolean verificaDigitos(String cpf){
String digitoUm = cpf.substring(9,10);
String digitoDois = cpf.substring(10,11);
if((primeiroDigitoVerificardor == Integer.parseInt(digitoUm))&&
(segundoDigitoVerificardor == Integer.parseInt(digitoDois))){
return true;
}else{
return false;
}
}
}
