[b]Iae Pessoal!
Eu to começando a aprender java, e gostaria de umas dicas para criar um algoritmo para validar CPF, eu nao consigo fazer o método.
Valew[b]
validaçao de CPF
J
9 Respostas
Eu tinha feito isso uma vez, quando estava aprendendo, depois larguei mao.
Cara eu não sei qual é a regra para validar o CPF, posta ela ai que eu tento fazer o código!
Falou!
V
Ae meu chapa uma função javascript dahora pra validar cpf
function validaCPF(str) {
str = str.replace("-","");
str = str.replace(".","");
str = str.replace(".","");
cpf = str;
erro = new String;
if (cpf.length < 11) erro += "Sao necessarios 11 digitos para verificacao do CPF! \n\n";
var nonNumbers = /\D/;
if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n";
if (cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]" || cpf == "[telefone removido]"){
erro += "Numero de CPF invalido!"
}
var a = [];
var b = new Number;
var c = 11;
for (i=0; i<11; i++){
a[i] = cpf.charAt(i);
if (i < 9) b += (a[i] * --c);
}
if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
b = 0;
c = 11;
for (y=0; y<10; y++) b += (a[y] * c--);
if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
erro +="Digito verificador com problema!";
}
if (erro.length > 0){
alert(erro);
return false;
}
return true;
}
…depois eu mando a conta blz !
abraço,
B
Ae meu chapa um metodo dahora pra validar cnpjpublic boolean CNPJ(String str_cnpj) { int soma = 0, 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); }…depois eu mando a conta blz !
abraço,
cnpj != cpf
V
heheehehh desculpas…, ja arrumei 
J
Valew ae!!
Depois mi manda a conta!!
hauhuauha
J
Oww!!
Disculpa ignorancia…mas esse código tbm servepra CPF ou so pra cnpj mesmo???
Você pode usar a BrazilUtils API: [url]http://brazilutils.dev.java.net[/url]
Exemplo:import org.brazilutils.br.cpfcnpj.Cpf;
import org.brazilutils.br.cpfcnpj.CpfCnpj;
import org.brazilutils.br.cpfcnpj.Cnpj;
import org.brazilutils.validation.ValidationException;
class TestCpf {
public static void main(String[] args) {
String cpf1 = "[CPF removido]"; // cpf valido
String cpf2 = "[telefone removido]"; // cpf valido
String cpf3 = "[telefone removido]"; // cpf invalido
String cnpj1 = "71.260.392/0001-76"; // cnpj valido
String cnpj2 = "74963731000179"; // cnpj valido
String cnpj3 = "12345678912345"; // cnpj invalido
try {
CpfCnpj[] c = new CpfCnpj[6];
c[0] = new Cpf(cpf1);
c[1] = new Cpf(cpf2);
c[2] = new Cpf(cpf3);
c[3] = new Cnpj(cnpj1);
c[4] = new Cnpj(cnpj2);
c[5] = new Cnpj(cnpj3);
for (int i = 0; i < c.length; i++) {
String tipo = null;
// verifica cpf
if (c[i].isCpf()) {
tipo = "Cpf";
} else {
tipo = "Cnpj";
}
System.out.println(tipo + " : " + c[i] +
" - isValid(): " + c[i].isValid());
}
} catch (ValidationException e) {
e.printStackTrace();
}
}
}
Cpf : 12?.48?.55?-??- isValid(): true
Cpf : 78?.71?.13?-?? - isValid(): true
Cpf : 12?.45?.78?-?? - isValid(): false
Cnpj : 71?.60?.92?-00176 - isValid(): true
Cnpj : 74?.63?.31?-00179 - isValid(): true
Cnpj : 12?.45?.78?-12345 - isValid(): false
[color=darkred]Editado por Luca para não aparecer nenhum CPF válido. Quem quiser testar coloque seu próprio CPF.[/color]
P
import java.util.*;
/**
- Classe com método para validação de CPF
- Pode ser utilizada livremente e modificada para se integrar à sistemas mais complexos.
*/
public class CPF {
/** Realiza a validação do CPF.
*
* @param strCPF número de CPF a ser validado
* @return true se o CPF é válido e false se não é válido
*/
static public boolean CPF (String strCpf )
{
int d1, d2;
int digito1, digito2, resto;
int digitoCPF;
String nDigResult;
d1 = d2 = 0;
digito1 = digito2 = resto = 0;
for (int nCount = 1; nCount < strCpf.length() -1; nCount++)
{
digitoCPF = Integer.valueOf (strCpf.substring(nCount -1, nCount)).intValue();
//multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4 e assim por diante.
d1 = d1 + ( 11 - nCount ) * digitoCPF;
//para o segundo digito repita o procedimento incluindo o primeiro digito calculado no passo anterior.
d2 = d2 + ( 12 - nCount ) * digitoCPF;
};
//Primeiro resto da divisão por 11.
resto = (d1 % 11);
//Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2)
digito1 = 0;
else
digito1 = 11 - resto;
d2 += 2 * digito1;
//Segundo resto da divisão por 11.
resto = (d2 % 11);
//Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11 menos o resultado anterior.
if (resto < 2)
digito2 = 0;
else
digito2 = 11 - resto;
//Digito verificador do CPF que está sendo validado.
String nDigVerific = strCpf.substring (strCpf.length()-2, strCpf.length());
//Concatenando o primeiro resto com o segundo.
nDigResult = String.valueOf(digito1) + String.valueOf(digito2);
//comparar o digito verificador do cpf com o primeiro resto + o segundo resto.
return nDigVerific.equals(nDigResult);
}
/*
public static void main(String[] args) {
System.out.println( CPF("[telefone removido]") );
}
*/
}
Criado 13 de julho de 2006
Ultima resposta 16 de jul. de 2006
Respostas 9
Participantes 7
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo