Validador de Cpf

5 respostas
mymyself

Ola galera…achei um validador de cpf na internet mais ai to com alguns problemas aki (iniciante em java)

mostrarei primeiramente meu codigo depois coloco a duvida abaixo

[b][i]
public static boolean valida_cpf(String CNPJ_CPF) {
if(CNPJ_CPF.length() == 11) { //CPF

int acumulador1 = 0;
         int acumulador2 = 0;
         int resto = 0;

         StringBuffer resultado = new StringBuffer();

         String digitoVerificadorCPF = CNPJ_CPF.substring((CNPJ_CPF.length() - 2), 
                                                                                                           CNPJ_CPF.length());

         for(int i = 1; i < (CNPJ_CPF.length() - 1); i++) {
                 acumulador1 += (11 - i) * Integer.valueOf(CNPJ_CPF.substring((i - 1), i));
                 acumulador2 += (12 - i) * Integer.valueOf(CNPJ_CPF.substring((i - 1), i));
         }

         resto = acumulador1 % 11;

         if (resto < 2) {
                 acumulador2 += 2;
                 resultado.append(2);
         }
         else {
                 acumulador2 += 2 * (11 - resto);
                 resultado.append((11 - resto));
         }

         resto = acumulador2 % 11;

         if (resto < 2) {
                 resultado.append(0);
         }
         else {
                 resultado.append((11 - resto));
         }

         return resultado.toString().equals(digitoVerificadorCPF);
 }
	return false;
	}[/b][/i]

//validador CPF

[b][i]
//chamando o metodo e testando

JB0.addActionListener(

new ActionListener(){

public void actionPerformed(ActionEvent e){

conexao BD0 = new conexao();

BD0.conectar();

String SV1, SV2, SV3, SV4, SV5, SV6, SV7, SV8, SV9, SV10, SV11, SV12, SV13, SV14, SV15, SV16, SV17, SV18, SV19, SV20;
SV1 = JT1.getText();
					SV2 = JT2.getText();
                                            SV3 = JT3.getText();
					SV4 = JT4.getText();
					SV5 = JT5.getText();
					SV6 = JT6.getText();
					SV7 = (String)JCB0.getSelectedItem();
					SV8 = JT8.getText();
					SV9 = JT9.getText();
					SV10 = JT10.getText();
					SV11 = JT11.getText();
					SV12 = teste.getText();
					SV13 = teste2.getText();
					SV14 = teste3.getText();
					SV15 = (String)JCB1.getSelectedItem();
					SV16 = (String)JCB2.getSelectedItem();
					SV17 = teste4.getText();
					SV18 = teste5.getText();
					SV19 = teste6.getText();
					SV20 = teste7.getText();
					
					JCB0.getSelectedItem().toString();
					JCB1.getSelectedItem().toString();
					JCB2.getSelectedItem().toString();
					//Verificando_Insercao
					boolean insere = pa.novopaciente(SV1, SV2, SV3, SV4, SV5, SV6, SV7, SV8, SV9, SV10, SV11, SV12, SV13, SV14, SV15, SV16, SV17, SV18, SV19, SV20);
					boolean cpf=pa.valida_cpf(SV13);
					boolean rg=pa.validarrg(SV10);
				        boolean data1=pa.verificaData(SV12);
					boolean data2=pa.verificaData(SV14);
							
					
				if(!insere){
JOptionPane.showMessageDialog(null,Cadastro não realizado,Mensagem do programa,JOptionPane.ERROR_MESSAGE);

}else if(!cpf){

JOptionPane.showMessageDialog(null,Campo CPF Inválido ou não preenchido,Mensagem do programa,JOptionPane.ERROR_MESSAGE);

}else if(!rg){

JOptionPane.showMessageDialog(null,Campo RG Inválido ou não preenchido,Mensagem do programa,JOptionPane.ERROR_MESSAGE);	

}else if(!data1){

JOptionPane.showMessageDialog(null,Data Inválida,Mensagem do programa,JOptionPane.ERROR_MESSAGE);	

}else if(!data2){

JOptionPane.showMessageDialog(null,Data Inválida,Mensagem do programa,JOptionPane.ERROR_MESSAGE);	

}else{

JOptionPane.showMessageDialog(null,Cadastro Realizado com sucesso.,Mensagem do programa.,JOptionPane.INFORMATION_MESSAGE);

JT1.setText("");

JT2.setText("");

JT3.setText("");

JT4.setText("");

JT5.setText("");

JT6.setText("");

JCB0.setSelectedItem(null);

JT8.setText("");

JT9.setText("");

JT10.setText("");

JT11.setText("");

teste.setText("");

teste2.setText("");

teste3.setText("");

JCB1.setSelectedItem(null);

JCB2.setSelectedItem(null);

teste4.setText("");

teste5.setText("");

teste6.setText("");

teste7.setText("");	

}}

}

);[/b][/i]

ai estou com os seguintes problemas:
1º SV2 = JT2.getText(); por ser um numero inteiro ele nao pode utilizar getText - sugestões
2º o encadeamento de ELSE IF q fiz e para testar os validadores onde INSERE-e caso não houver nenhum dado preenchido…CPF-validador de cpf…RG- so para validar se não contem mais de 11 digitos…data - para validar datas,para nao digitar numeros foram d ordem,etc…entao quando chego no campo cpf ele acusa o erro que esta acima na JOptionPane.showMessageDialog mesmo se deixo preenchido ou se deixo sem…e ja mudei o boolean cpf pra true…para false…deixei dentro do else if (!cpf)…deixei sem o “!” tambem e nada… - sugestões
3º nesse acontece que msmo aparecendo a mensagem de erro da JOptionPane.showMessageDialog o cadastro esta sendo guardado no banco…e se der erro nao pode ser guardado no banco…

VLW!

5 Respostas

Felagund

Cara, esse seu codigo está horrivel, serio mesmo.

utilize variaveis legiveis, SV1 SV2, isso não é nome, serio mesmo…

poste seus codigos com a tag code

e para converter String em numero

int numero = Integer.parseInt(textField.getText());

sem citar, bibliotecas como Caelum Stella e BrazilUtils que validam CPF, sem vc precisar codificar.

L

caraca que codigo ruim de ler!! muito msm :shock:

poderia derivar suas variaveis com nomes do campos poderia ser mais util pra vc !!!

e tbm post seus codigos com code /code :arrow: entre tags

mymyself

Entao baixei a biblioteca Caelum Stella(caelum-stella-1.2-bin)…ai dando uma olhada no site dela…ela diz que ja oferece uma classe para utilizar e tal…como faço para utilizar o validador da biblioteca…no meu projeto tem uma pasta ‘lib’…coloco a biblioteca inteira la dentro depois de extraida…qndo chamo a classe como diz no site CPFValidator validator = new CPFValidator();
pede para mim criar uma classe…ja não deveria ter…pois o site fla q ela oferece a classe ja…como utilizar?

Marky.Vasconcelos

Voce importou o jar no seu projeto?

mymyself

entao…baixei o arquivo caelum-stella-1.2…extrai ele e coloquei ele dentro da pasta do projeto…no caso dentro de uma pasta “LIB” q tenho…dentro dela tem um pasta stella-core q contem um arquivo caelum-stella-core-1.2.jar…(e esse q vc esta flando)…
e extraindo esse arquivo dentro do caminho stell-core/br/com/caelum/stella/validation realmente tem uma classe la…mais qndo a chamo o java me pede para criar esta classe como dica e me da erro caso nao crie ela…entao como utilizar o caelum-stella?

Criado 3 de novembro de 2010
Ultima resposta 3 de nov. de 2010
Respostas 5
Participantes 4