Código Validação de CPF

20/01/2016

1

Pessoal, beleza?

O que acham do meu código abaixo para validação de CPF, estou iniciando agora no ramo da programação e ainda não trabalho com isso, venho tentando arrumar uma vaga, mais as empresas querem muita experiência. Estou aberto a criticas.

Fiz apenas um curso de Java, e agora estou iniciando este ano a graduação em Análise de Sistemas, mais adoro programar, será que levo jeito?!

public static Boolean validaCPF(int[] CPF) {
int soma = 0, digito = 0, numero = 0;
for (int i = 0; i < 9; i++) {
numero = CPF[i] * (10 - i);
soma += numero;
}
digito = verificaDigito(soma);
if (digito == CPF[9]) {
soma = 0;
for (int i = 0; i < 10; i++) {
soma += CPF[i] * (11 - i);
}
digito = verificaDigito(soma);
if (digito == CPF[10]) {
return true;
}
}
return false;
}

// converte String em inteiro
public static Integer converteNumber(String numero) {
return Integer.parseInt(numero);
}

// lógica do digito
public static Integer verificaDigito(int soma) {
int digito = soma % 11;
if (digito < 2) {
digito = 0;
} else {
digito = 11 - digito;
}
return digito;
}
Responder

Post mais votado

20/01/2016

Massa seu método e assim que comeca, existem diversas maneiras pra validação de Capad, uma das principais e usando Expressões Regulares... Der uma pesquisada..
Responder

Mais Posts

20/01/2016

Marcos Paulo

Muito antigo esse ou é utilizavel?

[url]http://www.devmedia.com.br/validando-o-cpf-em-uma-aplicacao-java/22097[/url]
Responder

20/01/2016

Christian Fuin

Marcos Paulo,

Eu quis desenvolver meu próprio código, pois como sou iniciante, é melhor colocar a mente pra trabalhar e conquista experiência do que CTRL+C / CTRL+V.

Um abraço!
Responder

20/01/2016

Jothaz

Acho que esta no caminho certo, nada de colar e copiar que considero um câncer que aflige os iniciantes. Já vi post aqui de gente com preguiça de indentar o código e queria uma forma de fazer automática. A pessoa copia o código e não que nem ter o trabalho de indentar.

Não sou contra pesquisar e usar exemplos para aprender, mas com o devido bom sendo.

Só omo informação o CPF 11111111111 é válido, pois digito é 11, mas normalmente é aconselhável retorna como incorreto para evitar lançamentos indevidos.
Se me lembro acontece com qualquer sequencia de de 1 até 9.
Então trate isto na sua função.

// 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); 




No mais êxito e bons estudos.
Responder

20/01/2016

Christian Fuin

Acho que esta no caminho certo, nada de colar e copiar que considero um câncer que aflige os iniciantes. Já vi post aqui de gente com preguiça de indentar o código e queria uma forma de fazer automática. A pessoa copia o código e não que nem ter o trabalho de indentar.

Não sou contra pesquisar e usar exemplos para aprender, mas com o devido bom sendo.

Só omo informação o CPF 11111111111 é válido, pois digito é 11, mas normalmente é aconselhável retorna como incorreto para evitar lançamentos indevidos.
Se me lembro acontece com qualquer sequencia de de 1 até 9.
Então trate isto na sua função.

// 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); 

Leia mais em: Validando o CPF em uma Aplicação Java http://www.devmedia.com.br/validando-o-cpf-em-uma-aplicacao-java/22097#ixzz3xnl0zHo7


No mais êxito e bons estudos.



Show de bola Jothaz! Vou melhorar a função !
Responder

20/01/2016

Christian Fuin

Acho que esta no caminho certo, nada de colar e copiar que considero um câncer que aflige os iniciantes. Já vi post aqui de gente com preguiça de indentar o código e queria uma forma de fazer automática. A pessoa copia o código e não que nem ter o trabalho de indentar.

Não sou contra pesquisar e usar exemplos para aprender, mas com o devido bom sendo.

Só omo informação o CPF 11111111111 é válido, pois digito é 11, mas normalmente é aconselhável retorna como incorreto para evitar lançamentos indevidos.
Se me lembro acontece com qualquer sequencia de de 1 até 9.
Então trate isto na sua função.

// 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); 

Leia mais em: Validando o CPF em uma Aplicação Java http://www.devmedia.com.br/validando-o-cpf-em-uma-aplicacao-java/22097#ixzz3xnl0zHo7


No mais êxito e bons estudos.



Show de bola Jothaz! Vou melhorar a função !
Responder

20/01/2016

Christian Fuin

Acho que esta no caminho certo, nada de colar e copiar que considero um câncer que aflige os iniciantes. Já vi post aqui de gente com preguiça de indentar o código e queria uma forma de fazer automática. A pessoa copia o código e não que nem ter o trabalho de indentar.

Não sou contra pesquisar e usar exemplos para aprender, mas com o devido bom sendo.

Só omo informação o CPF 11111111111 é válido, pois digito é 11, mas normalmente é aconselhável retorna como incorreto para evitar lançamentos indevidos.
Se me lembro acontece com qualquer sequencia de de 1 até 9.
Então trate isto na sua função.

// 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); 

Leia mais em: Validando o CPF em uma Aplicação Java http://www.devmedia.com.br/validando-o-cpf-em-uma-aplicacao-java/22097#ixzz3xnl0zHo7


No mais êxito e bons estudos.



Show de bola Jothaz! Vou melhorar a função !
Responder

20/01/2016

Marcos Paulo

Marcos Paulo,

Eu quis desenvolver meu próprio código, pois como sou iniciante, é melhor colocar a mente pra trabalhar e conquista experiência do que CTRL+C / CTRL+V.

Um abraço!


Sim, claro, mas esse artigo explica bem, da até para ter uma ideia de como produzir o seu proprio. Inspirar e fazer outro.
Responder

20/01/2016

Christian Fuin

Marcos Paulo,

Eu quis desenvolver meu próprio código, pois como sou iniciante, é melhor colocar a mente pra trabalhar e conquista experiência do que CTRL+C / CTRL+V.

Um abraço!


Sim, claro, mas esse artigo explica bem, da até para ter uma ideia de como produzir o seu proprio. Inspirar e fazer outro.


Verdade, depois vou ler com calma. :D
Responder

20/01/2016

Marcos Paulo

Sucesso Christian.
Responder

20/01/2016

Edson Venancio

Na classe Character existe um metodo chamado isDigit que verfica se o cpf e diferente de um numero se for ele nao deixa passar.

Relacionado a quantidade de caracter poderiamos limitar usando e se no caso for joga no banco basta converter de qualquer tipo pra receber string
String cpf ;
if((cpf.length !=11){
   System.out.println("Cpf deve Conter 11 digitos..")
}


So uma base nada completo, como disse existem varias maneiras..
Responder

20/01/2016

Marcos Paulo

Faria parte da lógica + a regra do cpf possuir somente 11 digitos!
Responder

20/01/2016

Christian Fuin

Faria parte da lógica + a regra do cpf possuir somente 11 digitos!


Isso ae Marcos, fiz apenas a parte da logica de calculo do cpf, para praticar a programacao, visto que sou iniciante.
Responder

21/01/2016

Marcos Paulo

Caminho certo, em muitos outros pontos não adianta reinventar a roda mas para aprender é válido.
Responder

22/01/2016

Christian Fuin

Com certeza!
Responder