Pessoal, estou desenvolvendo um projeto de um programa para uma locadora… ai pensei em colocar algumas classes “Extras” para ser usada pela minha class Cliente, como a class DataDeNascimento que não permitiria por exemplo que o ano tivesse mais de 4 caracteres, e também uma classe para validar CPF. Só que não consegui um jeito de não permitir que o ano tivesse só até 4 números!
e gostaria de saber se alguém tem uma class para validação de cpf pronta ai
agradeço, abraços!
Ao inves de validar o tamanho do ano, pq vc nao valida o ano em si? Por exemplo, se for menos que 1900 ou maior que o ano atual, voce nao permite.
Rafael
Ta ai véio na integra o código feito e testado e de sobra o de cnpj também:
public class TestaCpfCnpj {
private static final int[] pesoCPF = { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
private static final int[] pesoCNPJ = { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3,
2 };
private static int calcularDigito(String str, int[] peso) {
int soma = 0;
for (int indice = str.length() - 1, digito; indice >= 0; indice--) {
digito = Integer.parseInt(str.substring(indice, indice + 1));
soma += digito * peso[peso.length - str.length() + indice];
}
soma = 11 - soma % 11;
return soma > 9 ? 0 : soma;
}
public static boolean isValidCPF(String cpf) { ;
if ((cpf == null) || (cpf.length() != 11))
return false;
Integer digito1 = calcularDigito(cpf.substring(0, 9), pesoCPF);
Integer digito2 = calcularDigito(cpf.substring(0, 9) + digito1, pesoCPF);
return cpf.equals(cpf.substring(0, 9) + digito1.toString()
+ digito2.toString());
}
public static boolean isValidCNPJ(String cnpj) {
if ((cnpj == null) || (cnpj.length() != 12))
return false;
Integer digito1 = calcularDigito(cnpj.substring(0, 12), pesoCNPJ);
Integer digito2 = calcularDigito(cnpj.substring(0, 12) + digito1,
pesoCNPJ);
return cnpj.equals(cnpj.substring(0, 12) + digito1.toString()
+ digito2.toString());
}
}
Falou