Blame |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.domain.util;
public class ValidadorCpfCnpjUtil
{
public static boolean isCPF
(String CPF
) {
// considera-se erro CPF's formados por uma sequencia de numeros iguais
if (CPF.
equals("00000000000") || CPF.
equals("11111111111") ||
CPF.
equals("22222222222") || CPF.
equals("33333333333") ||
CPF.
equals("44444444444") || CPF.
equals("55555555555") ||
CPF.
equals("66666666666") || CPF.
equals("77777777777") ||
CPF.
equals("88888888888") || CPF.
equals("99999999999") ||
(CPF.
length() !=
11))
return(false);
char dig10, dig11
;
int sm, i, r, num, peso
;
// "try" - protege o codigo para eventuais erros de conversao de tipo (int)
try {
// Calculo do 1o. Digito Verificador
sm =
0;
peso =
10;
for (i=
0; i
<9; i++
) {
// converte o i-esimo caractere do CPF em um numero:
// por exemplo, transforma o caractere '0' no inteiro 0
// (48 eh a posicao de '0' na tabela ASCII)
num =
(int)(CPF.
charAt(i
) -
48);
sm = sm +
(num
* peso
);
peso = peso -
1;
}
r =
11 -
(sm
% 11);
if ((r ==
10) ||
(r ==
11))
dig10 =
'0';
else dig10 =
(char)(r +
48); // converte no respectivo caractere numerico
// Calculo do 2o. Digito Verificador
sm =
0;
peso =
11;
for(i=
0; i
<10; i++
) {
num =
(int)(CPF.
charAt(i
) -
48);
sm = sm +
(num
* peso
);
peso = peso -
1;
}
r =
11 -
(sm
% 11);
if ((r ==
10) ||
(r ==
11))
dig11 =
'0';
else dig11 =
(char)(r +
48);
// Verifica se os digitos calculados conferem com os digitos informados.
if ((dig10 == CPF.
charAt(9)) && (dig11 == CPF.
charAt(10)))
return(true);
else return(false);
} catch (Exception erro
) {
return(false);
}
}
public static String imprimeCPF
(String CPF
) {
return(CPF.
substring(0,
3) +
"." + CPF.
substring(3,
6) +
"." +
CPF.
substring(6,
9) +
"-" + CPF.
substring(9,
11));
}
public static boolean isCNPJ
(String CNPJ
) {
// considera-se erro CNPJ's formados por uma sequencia de numeros iguais
if (CNPJ.
equals("00000000000000") || CNPJ.
equals("11111111111111") ||
CNPJ.
equals("22222222222222") || CNPJ.
equals("33333333333333") ||
CNPJ.
equals("44444444444444") || CNPJ.
equals("55555555555555") ||
CNPJ.
equals("66666666666666") || CNPJ.
equals("77777777777777") ||
CNPJ.
equals("88888888888888") || CNPJ.
equals("99999999999999") ||
(CNPJ.
length() !=
14))
return(false);
char dig13, dig14
;
int sm, i, r, num, peso
;
// "try" - protege o código para eventuais erros de conversao de tipo (int)
try {
// Calculo do 1o. Digito Verificador
sm =
0;
peso =
2;
for (i=
11; i
>=
0; i--
) {
// converte o i-ésimo caractere do CNPJ em um número:
// por exemplo, transforma o caractere '0' no inteiro 0
// (48 eh a posição de '0' na tabela ASCII)
num =
(int)(CNPJ.
charAt(i
) -
48);
sm = sm +
(num
* peso
);
peso = peso +
1;
if (peso ==
10)
peso =
2;
}
r = sm
% 11;
if ((r ==
0) ||
(r ==
1))
dig13 =
'0';
else dig13 =
(char)((11-r
) +
48);
// Calculo do 2o. Digito Verificador
sm =
0;
peso =
2;
for (i=
12; i
>=
0; i--
) {
num =
(int)(CNPJ.
charAt(i
)-
48);
sm = sm +
(num
* peso
);
peso = peso +
1;
if (peso ==
10)
peso =
2;
}
r = sm
% 11;
if ((r ==
0) ||
(r ==
1))
dig14 =
'0';
else dig14 =
(char)((11-r
) +
48);
// Verifica se os dígitos calculados conferem com os dígitos informados.
if ((dig13 == CNPJ.
charAt(12)) && (dig14 == CNPJ.
charAt(13)))
return(true);
else return(false);
} catch (Exception erro
) {
return(false);
}
}
public static String imprimeCNPJ
(String CNPJ
) {
// máscara do CNPJ: 99.999.999.9999-99
return(CNPJ.
substring(0,
2) +
"." + CNPJ.
substring(2,
5) +
"." +
CNPJ.
substring(5,
8) +
"." + CNPJ.
substring(8,
12) +
"-" +
CNPJ.
substring(12,
14));
}
}