validação de cpf
to usando esse codigo pra validar cpf em uma classe de validações que criei
public static boolean ValidarCPF(String cpf) {
char dig10, dig11;
int s, i, r, num;
if (cpf.equals("00000000000") || (cpf.length() != 11)) {
return (false);
}
try {
s = 0;
for (i = 0; i < 9; i++) {
num = (int) (cpf.charAt(i) - 48);
s = s + (num * (10 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig10 = '0';
} else {
dig10 = (char) (r + 48);
}
s = 0;
for (i = 0; i < 10; i++) {
num = (int) (cpf.charAt(i));
s = s + (num * (11 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig11 = '0';
} else {
dig11 = (char) (r + 48);
}
if ((dig10 == cpf.charAt(9)) && (dig11 == cpf.charAt(10))) {
return (true);
} else {
return (false);
} } catch (InputMismatchException erro) {
return (false);
}
} e na classe repositorio estou colocando esse public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
String cpf;
System.out.printf("Informe um CPF:");
cpf = ler.next();
if (Funcoes.ValidarCPF(cpf) == true) {
System.out.printf("\n&s\n", Funcoes.ValidarCPF(cpf));
} else {
System.out.printf("\nErro: CPF invalido!!!\n");
}
} agora na classe principal a de cadastro cliente eu não to sabendo como para que ele possa validar o cpf estou colocando assim public CadastroCliente() {
initComponents();
Funcoes.centralizeFrame(this);
Funcoes.ValidarCPF(cpf.getText()); cpf.setText("075.068.057-07"); private void botaoInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Cliente cliente = new Cliente();
cliente.setCpf(cpf.getText()); RepositorioCliente.obterInstancia().inserir(cliente); cpf.setText(""); private void botaoPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
ArrayList<Cliente> lista = this.listaCliente;
for (int i = 0; i < lista.size(); i++) { cpf.setText(cpf.getText()); isso ai é a perte q sto fazendo pra cpf so q a função ñ esta funcionado se puder me ajudar
char dig10, dig11;
int s, i, r, num;
if (cpf.equals("00000000000") || (cpf.length() != 11)) {
return (false);
}
try {
s = 0;
for (i = 0; i < 9; i++) {
num = (int) (cpf.charAt(i) - 48);
s = s + (num * (10 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig10 = '0';
} else {
dig10 = (char) (r + 48);
}
s = 0;
for (i = 0; i < 10; i++) {
num = (int) (cpf.charAt(i));
s = s + (num * (11 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig11 = '0';
} else {
dig11 = (char) (r + 48);
}
if ((dig10 == cpf.charAt(9)) && (dig11 == cpf.charAt(10))) {
return (true);
} else {
return (false);
} } catch (InputMismatchException erro) {
return (false);
}
} e na classe repositorio estou colocando esse public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
String cpf;
System.out.printf("Informe um CPF:");
cpf = ler.next();
if (Funcoes.ValidarCPF(cpf) == true) {
System.out.printf("\n&s\n", Funcoes.ValidarCPF(cpf));
} else {
System.out.printf("\nErro: CPF invalido!!!\n");
}
} agora na classe principal a de cadastro cliente eu não to sabendo como para que ele possa validar o cpf estou colocando assim public CadastroCliente() {
initComponents();
Funcoes.centralizeFrame(this);
Funcoes.ValidarCPF(cpf.getText()); cpf.setText("075.068.057-07"); private void botaoInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Cliente cliente = new Cliente();
cliente.setCpf(cpf.getText()); RepositorioCliente.obterInstancia().inserir(cliente); cpf.setText(""); private void botaoPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
ArrayList<Cliente> lista = this.listaCliente;
for (int i = 0; i < lista.size(); i++) { cpf.setText(cpf.getText()); isso ai é a perte q sto fazendo pra cpf so q a função ñ esta funcionado se puder me ajudar
Lu
Curtidas 0
Respostas
Robson Teixeira
02/06/2011
olá lucynha
no seu metodo botaoInserirActionPerformed tente assim
private void botaoInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Cliente cliente = new Cliente();
cliente.setCpf(cpf.getText()); if(Funcoes.ValidarCPF(cpf)){ RepositorioCliente.obterInstancia().inserir(cliente); }else{ // dentro desse else crie uma logica para enviar uma mensagem de erro para o usuario indicando que o cpf está incorreto } qualquer coisa é so chamar att robson
Cliente cliente = new Cliente();
cliente.setCpf(cpf.getText()); if(Funcoes.ValidarCPF(cpf)){ RepositorioCliente.obterInstancia().inserir(cliente); }else{ // dentro desse else crie uma logica para enviar uma mensagem de erro para o usuario indicando que o cpf está incorreto } qualquer coisa é so chamar att robson
GOSTEI 0
Davi Costa
02/06/2011
Ok então, vc pode fazer sua validação via regex e chamar o método como o Robson citou acima.
Veja esse links (O primeiro link já resolve):
http://redefoks.googlecode.com/svn/tags/Entities3.1/test/model/validadores/CepValidador.java
http://www.igorescobar.com/blog/tag/regex/
http://www.guj.com.br/java/114510-como-verificar-se-o-cep-e-valido--atraves-dos-correios--resolvido
http://www.linhadecodigo.com.br/dica/1280/Express%C3%B5es-RegularesPHP.aspx
http://codigofonte.uol.com.br/codigo/js-dhtml/validacao/validar-cep-usando-expressao-regular
Agora se eseu sistema for web a melhor saída é validar no formulário via javaScript, o usuário não teria que esperar a requisição ir no servidor e voltar com a resposta. Não se esqueça performance performance performance.
Att Davi
Veja esse links (O primeiro link já resolve):
http://redefoks.googlecode.com/svn/tags/Entities3.1/test/model/validadores/CepValidador.java
http://www.igorescobar.com/blog/tag/regex/
http://www.guj.com.br/java/114510-como-verificar-se-o-cep-e-valido--atraves-dos-correios--resolvido
http://www.linhadecodigo.com.br/dica/1280/Express%C3%B5es-RegularesPHP.aspx
http://codigofonte.uol.com.br/codigo/js-dhtml/validacao/validar-cep-usando-expressao-regular
Agora se eseu sistema for web a melhor saída é validar no formulário via javaScript, o usuário não teria que esperar a requisição ir no servidor e voltar com a resposta. Não se esqueça performance performance performance.
Att Davi
GOSTEI 0
Lu
02/06/2011
da forma que vc colocou eu fiz so q ele fico pedindo pra criar um metodo if(Funcoes.ValidarCPF(cpf)){ de cep e qndo faço isso fica dando todos os cpfs invalidos
GOSTEI 0
Lu
02/06/2011
pedi para criar outro metodo na class repositorio.
ok vo olhar agora davi
GOSTEI 0
Davi Costa
02/06/2011
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CepValidador{
private final String reg = "[0-9]\\-[0-9]";
public boolean isValid(String cep) {
boolean result = true;
if (cep == null) {
result = true;
} else {
Pattern pattern = Pattern.compile(reg);
Matcher match = pattern.matcher(cep);
result = match.matches();
}
return result;
}
}
Att Davi
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CepValidador{
private final String reg = "[0-9]\\-[0-9]";
public boolean isValid(String cep) {
boolean result = true;
if (cep == null) {
result = true;
} else {
Pattern pattern = Pattern.compile(reg);
Matcher match = pattern.matcher(cep);
result = match.matches();
}
return result;
}
}
Att Davi
GOSTEI 0
Lu
02/06/2011
foi mau eu digitei a palavra errada eu quis dizer q quando eu vo usar a
função no cadastro cliente, ele reconhece a função e tal, so q o CPF da
função ñ, fica pedindo pra criar um outro metodo de CPF. se puder me
falar o pq
agradeço
agradeço
GOSTEI 0
Davi Costa
02/06/2011
Não sei se vc fez a refatoração que eu sugeri, mas vamos fazer o seguinte, me posta a classe que tem o método de validação do cpf e posta o código que deveria usá-lo para validar.
Att Davi
Att Davi
GOSTEI 0
Lu
02/06/2011
public static boolean ValidarCPF(String CPF) {
char dig10, dig11;
int s, i, r, num;
if (CPF.equals("00000000000") || (CPF.length() != 11)) {
return (false);
}
try {
s = 0;
for (i = 0; i < 9; i++) {
num = (int) (CPF.charAt(i) - 48);
s = s + (num * (10 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig10 = '0';
} else {
dig10 = (char) (r + 48);
}
s = 0;
for (i = 0; i < 10; i++) {
num = (int) (CPF.charAt(i));
s = s + (num * (11 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig11 = '0';
} else {
dig11 = (char) (r + 48);
}
if ((dig10 == CPF.charAt(9)) && (dig11 == CPF.charAt(10))) {
return (true);
} else {
return (false);
}
} catch (InputMismatchException erro) {
return (false);
}
}
char dig10, dig11;
int s, i, r, num;
if (CPF.equals("00000000000") || (CPF.length() != 11)) {
return (false);
}
try {
s = 0;
for (i = 0; i < 9; i++) {
num = (int) (CPF.charAt(i) - 48);
s = s + (num * (10 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig10 = '0';
} else {
dig10 = (char) (r + 48);
}
s = 0;
for (i = 0; i < 10; i++) {
num = (int) (CPF.charAt(i));
s = s + (num * (11 - i));
}
r = 11 - (s & 11);
if ((r == 10) || (r == 11)) {
dig11 = '0';
} else {
dig11 = (char) (r + 48);
}
if ((dig10 == CPF.charAt(9)) && (dig11 == CPF.charAt(10))) {
return (true);
} else {
return (false);
}
} catch (InputMismatchException erro) {
return (false);
}
}
GOSTEI 0
Lu
02/06/2011
stou usando a classe
public class Funcoes {
public class Funcoes {
GOSTEI 0
Davi Costa
02/06/2011
private void botaoInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
Cliente cliente = new Cliente();
cliente.setCpf(cpf.getText());
if(Funcoes.ValidarCPF(cliente.getCpf())){
RepositorioCliente.obterInstancia().inserir(cliente);
}else{
// dentro desse else crie uma logica para enviar uma mensagem de erro para o usuario indicando que o cpf está incorreto
}
Att Davi
GOSTEI 0
Lu
02/06/2011
ele ñ da mais o erro so q ele tambem ele salva mesmo sendo invalido
GOSTEI 0
Lu
02/06/2011
ele ñ da mais o erro, so q tambem sta salva mesmoo cpf sendo invalido
GOSTEI 0
Lu
02/06/2011
o exemplo q eu stava vendo foi nesse site ai http://uouinfo.com.br/novo/?p=836
GOSTEI 0
Davi Costa
02/06/2011
me manda o exemplo do cpf que vc testou.
Que tal usar a solução do regex?
Att Davi
Que tal usar a solução do regex?
Att Davi
GOSTEI 0
Lu
02/06/2011
regex? cm funciona?
GOSTEI 0
Davi Costa
02/06/2011
Desculpa.. confundi cep com cpf..
postei uma solução acima... inclusive passei o link tb.
Use o método que passei, aí vc altera para um método static e pode ser tb na sua classe Funcoes.
att Davi
postei uma solução acima... inclusive passei o link tb.
Use o método que passei, aí vc altera para um método static e pode ser tb na sua classe Funcoes.
att Davi
GOSTEI 0
Davi Costa
02/06/2011
Vc vai ter que pesquisar só o regex do cpf
att Davi
att Davi
GOSTEI 0
Lu
02/06/2011
eu ja tentei isso , so q acabo ñ dando certo,
GOSTEI 0
Lu
02/06/2011
ok
GOSTEI 0
Davi Costa
02/06/2011
Ok. testa esse:
http://www.vivaolinux.com.br/script/Codigo-Java-para-validar-CPF
att Davi
http://www.vivaolinux.com.br/script/Codigo-Java-para-validar-CPF
att Davi
GOSTEI 0
Lu
02/06/2011
Ok. testa esse:
http://www.vivaolinux.com.br/script/Codigo-Java-para-validar-CPF
att Davi
http://www.vivaolinux.com.br/script/Codigo-Java-para-validar-CPF
att Davi
o unico problema q da é na hora de chamar o form cadastro,
ele ñ abre, fiz algumas mudanças pra ver se abria + r nada de funcionar
GOSTEI 0
Davi Costa
02/06/2011
Vc tá usando web né... pq vc n faz essa validação via javascript.. tem muita c solução na internet e vai ser mais performático, ou seja dois coelhos c uma cajadada só.
Att Davi
Att Davi
GOSTEI 0
Lu
02/06/2011
era, + resolvi agora usar sem web, talvez fique mais facil de fazer as validações
GOSTEI 0