Classe Java para a validação de CNPJ

Publicado por Samuel E Nascimento 18/09/2006

[ Hits: 11.890 ]

Download Cnpj.java




Código Java de uma classe com os métodos de validação de CNPJ de acordo com as regras da Receita Federal.

  



Esconder código-fonte

public class Cnpj {

    // 02998301000181
    static public boolean CNPJ( String str_cnpj )
    {
       int soma = 0, aux, dig;
       String cnpj_calc = str_cnpj.substring(0,12);

       if ( str_cnpj.length() != 14 )
         return false;

       char[] chr_cnpj = str_cnpj.toCharArray();

       /* Primeira parte */
       for( int i = 0; i < 4; i++ )
         if ( chr_cnpj[i]-48 >=0 && chr_cnpj[i]-48 <=9 )
           soma += (chr_cnpj[i] - 48) * (6 - (i + 1)) ;
       for( int i = 0; i < 8; i++ )
         if ( chr_cnpj[i+4]-48 >=0 && chr_cnpj[i+4]-48 <=9 )
           soma += (chr_cnpj[i+4] - 48) * (10 - (i + 1)) ;
       dig = 11 - (soma % 11);

       cnpj_calc += ( dig == 10 || dig == 11 ) ?
                      "0" : Integer.toString(dig);

       /* Segunda parte */
       soma = 0;
       for ( int i = 0; i < 5; i++ )
         if ( chr_cnpj[i]-48 >=0 && chr_cnpj[i]-48 <=9 )
           soma += (chr_cnpj[i] - 48) * (7 - (i + 1)) ;
       for ( int i = 0; i < 8; i++ )
         if ( chr_cnpj[i+5]-48 >=0 && chr_cnpj[i+5]-48 <=9 )
           soma += (chr_cnpj[i+5] - 48) * (10 - (i + 1)) ;
       dig = 11 - (soma % 11);
       cnpj_calc += ( dig == 10 || dig == 11 ) ?
                      "0" : Integer.toString(dig);

       return str_cnpj.equals(cnpj_calc);
    }

    /*   Use este trecho para testar a classe
    public static void main(String[] args) {
        Validacao v = new Validacao();
        System.out.println( CNPJ("02998301000181") ?
                            "OK" : "Incorreto" );
    }
    */
}

Scripts recomendados

Login gráfico em java

Pesquisa Ternária em um vetor ordenado

Ordenação de vetores com letras do alfabeto (atualizado)

Algoritmos para Teoria dos Números

Pequeno algoritmo para determinar se um número é primo ou não entre 1 e 10000


  

Comentários
[1] Comentário enviado por edimilson.gomes em 18/09/2006 - 13:41h

Xique... funcionou aki... valew.... abracos


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts