Classe Java para a validação de CNPJ

Publicado por Samuel E Nascimento 18/09/2006

[ Hits: 11.825 ]

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

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

Calcular ritmo de corrida de rua

Script para cálculo de distâncias na superfície terrestre utilizando coordenadas geográficas

Matemática discreta

Torre de Hanoi


  

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