sexta-feira, 14 de outubro de 2011

Algorítimo Para Validar Cpf Segundo Receita Federal em Java



Fala galera!
Abaixo posto para vocês um Algorítimo de validação de Cpf Segundo os moldes da Receita Feredal.

Att.

Bruno Rafael

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.autoenem.padrao;

/**
 *
 * @author Bruno
 */
public class ValidarCpf {

    /** Realiza a validação do CPF. 
     * 
     * @param   strCPF número de CPF a ser validado 
     * @return  true se o CPF é válido e false se não é válido 
     */
    public static boolean  CPF(String cpf) {
       String strCpf = cpf;
        if (strCpf.equals("")) {
            return false;
        } 
        
        int d1, d2;
        int digito1, digito2, resto;
        int digitoCPF;
        String nDigResult;

        d1 = d2 = 0;
        digito1 = digito2 = resto = 0;

        for (int nCount = 1; nCount < strCpf.length() - 1; nCount++) {
            digitoCPF = Integer.valueOf(strCpf.substring(nCount - 1, nCount)).intValue();

            //multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.  
            d1 = d1 + (11 - nCount) * digitoCPF;

            //para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.  
            d2 = d2 + (12 - nCount) * digitoCPF;
        }

        //Primeiro resto da divisão por 11.  
        resto = (d1 % 11);

        //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.  
        if (resto < 2) {
            digito1 = 0;
        } else {
            digito1 = 11 - resto;
        }

        d2 += 2 * digito1;

        //Segundo resto da divisão por 11.  
        resto = (d2 % 11);

        //Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.  
        if (resto < 2) {
            digito2 = 0;
        } else {
            digito2 = 11 - resto;
        }

        //Digito verificador do CPF que está sendo validado.  
        String nDigVerific = strCpf.substring(strCpf.length() - 2, strCpf.length());

        //Concatenando o primeiro resto com o segundo.  
        nDigResult = String.valueOf(digito1) + String.valueOf(digito2);

        //comparar o digito verificador do cpf com o primeiro resto + o segundo resto.  
        return nDigVerific.equals(nDigResult);
    }
// Use este trecho para testar a classe 
    }
//    public static void main(String[] args) {
//     ValidarCpf valida  = new ValidarCpf();
//     valida.CPF();
//    }
//}

É isso ai galera! Espero mais uma vez que tenha ajudado e que tenha repassado um pouco de meu conhecimento à vocês!!
Abraços.

Nenhum comentário:

Postar um comentário

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.