validação de cpf (método idiota) :)

12 respostas
D

um dos métodos de uma das classes de um sisteminha q eu to fazendo no meu curso de java consiste na validação do CPF do cliente, o cpf tem q ter 11 caracteres, então fiz isso…

public boolean validaCPF(String cpf)

{

if (cep.length == 11)

return true;
}

está certo? :stuck_out_tongue:

12 Respostas

N

Tem dois erros em seu metodo…

  1. A classe String tem um método chamado length()… e nao atributo length… os metodos tem sempre as “()”… rs
  2. O metodo length() retorna um int… e o seu codigo cep.length() == "11" nao vai funcionar pq o java eh uma linguagem fortemente tipada… nao dah para comparar String com int sem uma conversao explicita.

Enfim… substitua para

if (cep.length() == 11) 
        return true;

ou melhor ainda:

return cep.length() == 11;
D

continua o x :frowning:

o erro é cannot find simble. :frowning:

L

diogo.delgaudio:
continua o x :frowning:

o erro é cannot find simble. :(

Você recebe a variavel cpf como parâmetro e depois faz o código com uma variavel chamada cep…tah errado neh? É o maldito ctrl+c - ctrl+v…hehehe

D

hahaha… nem foi o ctrl+c/v… n tenho esse costume, pq to começando, aí ralo o dedo pra acostumar com a sintaxe, foi falta de atenção msmo!

mas valeu, galera! tem q colocar o else tb, neh? senão dah missing return statement… ficou assim:

public boolean validaCPF(String cpf){

if (cpf.length() == 11){

return true;

}

else{

return false;

}

}
A

public boolean validaCPF(String cpf){ return (cpf.length() == 11) }
A vlidacao de CPF, não é simples assim. Nao pode garantir que teras somente 11, pode ter 14 e ser valido…

Mas existem um calculo que faz a verificacao do CPF.

Mas , se for para estudo , use desse jeito ainda…
Adote o metodo que eu coloquei, pois o seu esta de uma forma não muito legivel…

P

acho que isso ai pode te ajudar…

public abstract class CPF extends Object {

	private static String calcDigVerif(String num) {
		
		Integer primDig, segDig;
		int soma = 0, peso = 10;
		for (int i = 0; i &lt num.length(); i++)
			soma += Integer.parseInt(num.substring(i, i + 1)) * peso--;

		if (soma % 11 == 0 | soma % 11 == 1)
			primDig = new Integer(0);
		else
			primDig = new Integer(11 - (soma % 11));

		soma = 0;
		peso = 11;
		for (int i = 0; i &lt num.length(); i++)
			soma += Integer.parseInt(num.substring(i, i + 1)) * peso--;

		soma += primDig.intValue() * 2;
		if (soma % 11 == 0 | soma % 11 == 1)
			segDig = new Integer(0);
		else
			segDig = new Integer(11 - (soma % 11));

		return primDig.toString() + segDig.toString();
	}

	public static String geraCPF() {
		
		String iniciais = "";
		Integer numero;
		for (int i = 0; i &lt 9; i++) {
			numero = new Integer((int) (Math.random() * 10));
			iniciais += numero.toString();
		}
		return iniciais + calcDigVerif(iniciais);
	}

	public static boolean validaCPF(String cpf) {
		if (cpf.length() != 11)
			return false;

		String numDig = cpf.substring(0, 9);
		return calcDigVerif(numDig).equals(cpf.substring(9, 11));
	}
}
P

CPF -> 11
CNPJ -> 14

!!!

O

peerless:
CPF -> 11
CNPJ -> 14

!!!

não é tão importante assim, mas:

cpf: [CPF removido] -> tamanho 14 cpf: [telefone removido] -> tamanho 11

depende da formatação…

P

otaviofcs:
peerless:
CPF -> 11
CNPJ -> 14

!!!

não é tão importante assim, mas:

cpf: [CPF removido] -> tamanho 14 cpf: [telefone removido] -> tamanho 11

depende da formatação…

Depende de como é tratado Mas se tratando de coisas oficiais… não contam com a formatação.
eu mesmo, gravo sem a formatação, e o formato ao buscar do banco…

D

valeu pelo help, galera! :wink:

J

Caso tenha interesse … aqui vai o link para uma breve explicação do calculo de validação do cpf : Calculo
[]s

M

Poxa galera estou tentando montar o algoritimo que tem naquele tutorial ai, mas o problema é o seguinte alguem poderia me explicar como este cara conseguiu tirar de 162 / 11 = 14 de quociente e 9 de resto, este é o problema nao consigo achar este esquema??

Criado 22 de maio de 2007
Ultima resposta 22 de mai. de 2007
Respostas 12
Participantes 9