Validação de CNPJ

4 respostas
B

Estou precisando de uma rotina de validação de CNPJ. Quem tiver uma, por favor, responda.

4 Respostas

A

testa esse aqui…



download

D

Aqui está uma classe simple que verifica os digitos validadores:



/*

* CnpjValidator.java

*

/



package pfe.servlet.aidf.tools;



public class CnpjValidator {



private static String cnpj;



/
* Creates a new instance of CnpjValidator */

private CnpjValidator() {}



public CnpjValidator(String cnpj){

this.cnpj = cnpj;

}



public boolean isValid() {



return validate();

}



public static boolean isValid(String cnpj) {



return new CnpjValidator(cnpj).isValid();

}



private boolean validate() {



try {

int[] numeros = cleanCnpj(cnpj);



try {

if(numeros[15] != 0) {

System.out.println("Tamanho do cnpj inválido");

return false;

}

} catch (Exception e){

// Aqui o numero é válido pois o tamanho não é maior que o formal

}



int soma1 = primeiraSoma(numeros);



int resto = soma1 % 11;

int digito1 = resto < 2 ? 0 : 11 - resto;



int soma2 = segundaSoma(numeros);



resto = soma2 % 11;

int digito2 = resto < 2 ? 0 : 11 - resto;

return ((numeros[12] == digito1) && (numeros[13] == digito2));



} catch (ArrayIndexOutOfBoundsException erro) {

System.out.println("Tamanho do cnpj inválido");

} catch (Exception erro) {

erro.printStackTrace();

}



return false;

}



private int primeiraSoma(int[] numeros)

throws Exception {



int soma = (numeros[0] * 5) + (numeros[1] * 4) +

(numeros[2] * 3) + (numeros[3] * 2) +

(numeros[4] * 9) + (numeros[5] * +

(numeros[6] * 7) + (numeros[7] * 6) +

(numeros[8] * 5) + (numeros[9] * 4) +

(numeros[10] * 3) + (numeros[11] * 2);

return soma;



}



private int segundaSoma(int[] numeros)

throws Exception {

int soma = (numeros[0] * 6) + (numeros[1] * 5) +

(numeros[2] * 4) + (numeros[3] * 3) +

(numeros[4] * 2) + (numeros[5] * 9) +

(numeros[6] * + (numeros[7] * 7) +

(numeros[8] * 6) + (numeros[9] * 5) +

(numeros[10] * 4) + (numeros[11] * 3) +

(numeros[12] * 2);

return soma;



}



private int[] cleanCnpj(String cnpj)

throws Exception {



int[] numeros = new int[cnpj.length()];

int j = 0;

for(int i = 0; i < cnpj.length(); i++) {

char letra = cnpj.charAt(i);

if( letra != ´.´ && letra != ´/´ && letra != ´-´)

numeros[j++] = Integer.parseInt(String.valueOf(letra));

}

return numeros;

}

}





Quem sabe vc consiga melhorá-la

M

Preciso de qual o logica de validacao, sera que alguem consegue um link pra mim… (traduzi o codigo mas nao ficou bem claro ainda)



Valeu

A

Cara simplesmente faça o seguinte



CnpjValidator cnpj = new CnpjValidator("984949849849"); // CNPJ entre aspas

boolean bol = cnpj.isValid();



/*

Se bol = true, o cnpj é válido, caso contrário é inválido!

*/





[]´s

Dalton

[ Esta mensagem foi editada por: aspirante em 20-11-2002 13:51 ]

Criado 25 de junho de 2002
Ultima resposta 25 de jun. de 2002
Respostas 4
Participantes 4