a string formada por todos os numeros ja é indexada, tente os metodos charAt() , substring()
não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code]
Olha um exemplo para obter cada número em uma determinada posição de um array
function validacpf(campo) {
var cpf = campo.value.replace(/\D/g, “”);
if(cpf == “”)
return true;
dig1 = 0; dig2 = 0; som1 = 0; som2 = 0; resto = 0;
calc = 0;
for (i = 1, k = 10; i < cpf.length -1; i++, k–) {
som1 += k * parseInt(cpf.substring(i - 1, i));
som2 += ((k + 1) * parseInt(cpf.substring(i - 1, i)));
}
resto = som1 % 11;
if (resto < 2)
dig1 = 0;
else
dig1 = 11 - resto;
som2 += 2 * dig1;
resto = som2 % 11;
if (resto < 2)
dig2 = 0;
else
dig2 = 11 - resto;
digCpf = cpf.substr(cpf.length - 2);
digCal = String(dig1).concat(String(dig2));
if(digCal != digCpf) {
alert(‘numero de cpf invalido!’);
campo.focus();
return false;
}
return true;
}
[code]
Obrigado pessoal pela ajuda, vamo ve se agora dá pra começa a quebrar a cabeça
por enquanto Valeww pela colaboraçãooo!!
esse bloquinho ai separa letra por letra do que for digitado, e no caso de ser inteiro ja converte.
int separados[]=new int[12];//vc só vai precisa de 9 espaços
cpf=JOptionPane.showInputDialog("digita ai seu cpf");
int tamanho=cpf.length();
for (int j=0;j<tamanho;j++){
try {
separados[j]=Integer.parseInt(cpf.substring(j, j+1));
} catch (NumberFormatException ex) {
ex.printStackTrace();
}
JOptionPane.showMessageDialog(null, separados[j]);
}
quanto a gerar os ultimos 2 numeros la… o que mesmo que deve ser feito com os 9 primeiros numeros para se chegar aos 2 ultimos? (qual é a conta???)
[quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!!
[quote=Karol][quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!![/quote]
bom eu nao uso ele com as mensagens e sim no retorno, quando valdio TRUE e quando invalido FALSE … se puder postar seu código pra ver se realmente ta igual e como vc esta usando ele talvez posso ajduar masi rapido…pq nao tive problemas em usar esse ae
[code][quote=rodolfo_b_g][quote=Karol][quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!![/quote]
bom eu nao uso ele com as mensagens e sim no retorno, quando valdio TRUE e quando invalido FALSE … se puder postar seu código pra ver se realmente ta igual e como vc esta usando ele talvez posso ajduar masi rapido…pq nao tive problemas em usar esse ae[/quote]
Bom o meu código esta assim:
eu chamo o método no evento focusLost do meu JTextField e chamo ele assim:
private void jtfCpfClienteFocusLost(java.awt.event.FocusEvent evt) {
validarCpf(jtfCpfCliente.getText());
}
esse método chama esse código:
public boolean validarCpf(String cpf) {
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
jtfCpfCliente.requestFocus();
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
JOptionPane.showMessageDialog(null, “CPF Válido”);
return true;
}
}
}
JOptionPane.showMessageDialog(null, “CPF Inválido”);
return false;
}
espero que isto possa te ajudar a entender o que está acontecendo.
Obrigada desde já.
[quote=Karol][code][quote=rodolfo_b_g][quote=Karol][quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!![/quote]
bom eu nao uso ele com as mensagens e sim no retorno, quando valdio TRUE e quando invalido FALSE … se puder postar seu código pra ver se realmente ta igual e como vc esta usando ele talvez posso ajduar masi rapido…pq nao tive problemas em usar esse ae[/quote]
Bom o meu código esta assim:
eu chamo o método no evento focusLost do meu JTextField e chamo ele assim:
private void jtfCpfClienteFocusLost(java.awt.event.FocusEvent evt) {
validarCpf(jtfCpfCliente.getText());
}
esse método chama esse código:
public boolean validarCpf(String cpf) {
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
jtfCpfCliente.requestFocus();
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
JOptionPane.showMessageDialog(null, “CPF Válido”);
return true;
}
}
}
JOptionPane.showMessageDialog(null, “CPF Inválido”);
return false;
}
espero que isto possa te ajudar a entender o que está acontecendo.
Obrigada desde já.[/quote]
bom acho q ja sei pq…por acaso vc esta informando o cpf com ponto? esse validador soh valida cpf q tiver apenas os numeros por exe: 111-111-111-11 fica 11111111111 dae sim ele vai validar…
nesse trecho do codigo ele valida se apenas numeros foram informados vc pode colocar pra exibir mensagem
try {
Long.parseLong(cpf);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Somente números são permitidos","ERRO",JOptionPane.ERROR_MESSAGE);
jtfCpfCliente.requestFocus();
return false;
}
testa e me fala se deu certo…abraçoss
[quote=rodolfo_b_g][quote=Karol][code][quote=rodolfo_b_g][quote=Karol][quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!![/quote]
bom eu nao uso ele com as mensagens e sim no retorno, quando valdio TRUE e quando invalido FALSE … se puder postar seu código pra ver se realmente ta igual e como vc esta usando ele talvez posso ajduar masi rapido…pq nao tive problemas em usar esse ae[/quote]
Bom o meu código esta assim:
eu chamo o método no evento focusLost do meu JTextField e chamo ele assim:
private void jtfCpfClienteFocusLost(java.awt.event.FocusEvent evt) {
validarCpf(jtfCpfCliente.getText());
}
esse método chama esse código:
public boolean validarCpf(String cpf) {
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
jtfCpfCliente.requestFocus();
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
JOptionPane.showMessageDialog(null, “CPF Válido”);
return true;
}
}
}
JOptionPane.showMessageDialog(null, “CPF Inválido”);
return false;
}
espero que isto possa te ajudar a entender o que está acontecendo.
Obrigada desde já.[/quote]
bom acho q ja sei pq…por acaso vc esta informando o cpf com ponto? esse validador soh valida cpf q tiver apenas os numeros por exe: 111-111-111-11 fica 11111111111 dae sim ele vai validar…
nesse trecho do codigo ele valida se apenas numeros foram informados vc pode colocar pra exibir mensagem
try {
Long.parseLong(cpf);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Somente números são permitidos","ERRO",JOptionPane.ERROR_MESSAGE);
jtfCpfCliente.requestFocus();
return false;
}
testa e me fala se deu certo…abraçoss[/quote]
Foi bem como vc disse, sem os pontos ele funciona, só que no meu caso eu estava utilizando uma mascara
no campo de CPF, eu nem digitava os pontos ele ja pegava os q tinha na mascara.
Ele funciona beleza assim mas vc não saberia uma forma q eu pudesse usar ele em um campo mascarado,
modificando alguma coisa nele ou utilizando outro codigo q aceite pontos para fazer a validação.
Abraços!!!
[quote=Karol][quote=rodolfo_b_g][quote=Karol][code][quote=rodolfo_b_g][quote=Karol][quote=rodolfo_b_g]não sei se isso ajuda mais segue o código de validar cpf… no caso vc usuário um JOptionPane.showImputDialog pra pegar a string do cpf e jogar nesse método para validação…
[code]public boolean validaCpf(String cpf)
{
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
file://erro = new FrameMensagens(“Clientes - Erro:” , “Somente números
são permitidos”);
cpfCliente.requestFocus();
return false;
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
file://erro = new FrameMensagens(“Clientes - Erro:” ,
“CPF Válido”);
return true;
}
}
}
file://erro = new FrameMensagens(“Clientes - Erro:” , “CPF
Inválido”);
return false;
}
[/code][/quote]
Olá tudo bom?
Eu sou nova aqui no forum e estava procurando por validação de CPF e acabei achando este seu post
e esse é o mesmo código que eu estou usando no meu programa só que eu estou com um problema com ele
porque ele só me retorna a mensagem de CPF inválido, mesmo que eu coloque um CPF válido no campo
você teria alguma idéia do que poderia estar causando este problema? O código é exatamente o mesmo de cima.
Valeu pela atenção!!![/quote]
bom eu nao uso ele com as mensagens e sim no retorno, quando valdio TRUE e quando invalido FALSE … se puder postar seu código pra ver se realmente ta igual e como vc esta usando ele talvez posso ajduar masi rapido…pq nao tive problemas em usar esse ae[/quote]
Bom o meu código esta assim:
eu chamo o método no evento focusLost do meu JTextField e chamo ele assim:
private void jtfCpfClienteFocusLost(java.awt.event.FocusEvent evt) {
validarCpf(jtfCpfCliente.getText());
}
esse método chama esse código:
public boolean validarCpf(String cpf) {
int soma = 0;
try {
Long.parseLong(cpf);
} catch (Exception e) {
jtfCpfCliente.requestFocus();
}
if(cpf.length() == 11) {
for (int i=0; i < 9; i++)
soma += (10 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(9) - ‘0’)) {
soma = 0;
for (int i=0; i < 10; i++)
soma += (11 - i) * (cpf.charAt(i) - ‘0’);
soma = 11 - (soma % 11);
if (soma > 9) soma = 0;
if (soma == (cpf.charAt(10) - ‘0’)) {
JOptionPane.showMessageDialog(null, “CPF Válido”);
return true;
}
}
}
JOptionPane.showMessageDialog(null, “CPF Inválido”);
return false;
}
espero que isto possa te ajudar a entender o que está acontecendo.
Obrigada desde já.[/quote]
bom acho q ja sei pq…por acaso vc esta informando o cpf com ponto? esse validador soh valida cpf q tiver apenas os numeros por exe: 111-111-111-11 fica 11111111111 dae sim ele vai validar…
nesse trecho do codigo ele valida se apenas numeros foram informados vc pode colocar pra exibir mensagem
try {
Long.parseLong(cpf);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Somente números são permitidos","ERRO",JOptionPane.ERROR_MESSAGE);
jtfCpfCliente.requestFocus();
return false;
}
testa e me fala se deu certo…abraçoss[/quote]
Foi bem como vc disse, sem os pontos ele funciona, só que no meu caso eu estava utilizando uma mascara
no campo de CPF, eu nem digitava os pontos ele ja pegava os q tinha na mascara.
Ele funciona beleza assim mas vc não saberia uma forma q eu pudesse usar ele em um campo mascarado,
modificando alguma coisa nele ou utilizando outro codigo q aceite pontos para fazer a validação.
Abraços!!![/quote]
Entendi, então oq vc pode fazer e limpar os caracteres q não forem numeros da string antes de validar e passar esse string limpa para a validação do cpf…segue o código de como ficaria… obs: montei isso no bloco de notas portanto não sei se as funções estão todas corretas… mas é mais ou menos por ai… espero ajudar :lol:
[code]private void jtfCpfClienteFocusLost(java.awt.event.FocusEvent evt) {
String cpfLimpo;
cpfLimpo = LimparCpf(jtfCpfCliente.getText());
validarCpf(cpfLimpo);
}
public String LimparCpf(String cpf){
String numeros =“0123456789”;
String cpfLimpo;
for(i=0; i<cpf.length; i++){
if (numeros.indexOf(cpf.charAt(i),0)!=-1){
cpfLimpo = cpfLimpo + cpf.charAt(i);
}
}
return cpfLimpo;
}[/code]>
Oi blz?
Olha muito bom o seu código só que eu estou tendo somente um problema que é com o length, porque eu acho que ele serve para trabalhar com String e o i que é usado no for é um int ai ele me retorna uma incompatibilidade de tipos. Vc não teria uma idéia de como tratar isto?
Agradeço desde já.
Abraços.
Olha, fiz esta soluçao é bem rapida e ja pega uma String formatada por exemplo caso estea utilizando swing, pode utilizar o JFormattedField
package testecpf;
/**
*
* @author Ricardo Job
*/
public class TesteCPF {
public static void main(String... agrs) {
System.out.println(" Retorno : " + validaCPF("123.456.789-10"));
}
// 012.345.567-98
public static boolean validaCPF(String cpf) {
String prefixo = cpf.substring(0, 3).concat(cpf.substring(4, 7)).concat(cpf.substring(8, 11));
String sufixo = cpf.substring(12, 14);
String retorno = "";
long valor = new Long(prefixo).longValue();
int incremento = 10;
boolean controle = true;
long totalPrimeiroDigito = 0;
long totalSegundoDigito = 0;
for (int i = 2; i < 10; i++) {
long valorVerificado = valor % incremento;
valor = valor / incremento;
long proximo = valor % incremento;
if (valorVerificado != proximo) {
controle = false;
}
totalPrimeiroDigito += (i) * valorVerificado;
totalSegundoDigito += valorVerificado * (i + 1);
System.out.print(" " + valorVerificado + " :" + proximo);
}
long digitoPrimiero = 11 - (totalPrimeiroDigito % 11);
totalSegundoDigito += digitoPrimiero * 2;
long digitoSegundo = 11 - (totalSegundoDigito % 11);
if (digitoSegundo == 11) {
digitoSegundo = 0;
}
retorno = String.valueOf(digitoPrimiero).concat(String.valueOf(digitoSegundo));
if (retorno.equals(sufixo) && (!controle)) {
return true;
}
return false;
}
}
Quem quiser pode copiar caso goste da soluçao!
Qualquer coisa manda uma mp, pra sugestoes.
[quote=71C4700]Olha, fiz esta soluçao é bem rapida e ja pega uma String formatada por exemplo caso estea utilizando swing, pode utilizar o JFormattedField
package testecpf;
/**
*
* @author Ricardo Job
*/
public class TesteCPF {
public static void main(String... agrs) {
System.out.println(" Retorno : " + validaCPF("070.455.864-50"));
}
// 012.345.567-98
public static boolean validaCPF(String cpf) {
String prefixo = cpf.substring(0, 3).concat(cpf.substring(4, 7)).concat(cpf.substring(8, 11));
String sufixo = cpf.substring(12, 14);
String retorno = "";
long valor = new Long(prefixo).longValue();
int incremento = 10;
boolean controle = true;
long totalPrimeiroDigito = 0;
long totalSegundoDigito = 0;
for (int i = 2; i < 10; i++) {
long valorVerificado = valor % incremento;
valor = valor / incremento;
long proximo = valor % incremento;
if (valorVerificado != proximo) {
controle = false;
}
totalPrimeiroDigito += (i) * valorVerificado;
totalSegundoDigito += valorVerificado * (i + 1);
System.out.print(" " + valorVerificado + " :" + proximo);
}
long digitoPrimiero = 11 - (totalPrimeiroDigito % 11);
totalSegundoDigito += digitoPrimiero * 2;
long digitoSegundo = 11 - (totalSegundoDigito % 11);
if (digitoSegundo == 11) {
digitoSegundo = 0;
}
retorno = String.valueOf(digitoPrimiero).concat(String.valueOf(digitoSegundo));
if (retorno.equals(sufixo) && (!controle)) {
return true;
}
return false;
}
}
Quem quiser pode copiar caso goste da soluçao!
Qualquer coisa manda uma mp, pra sugestoes.[/quote]
Cara muito bom esse seu código, funciono q é uma maravilha aqui, bom mesmo, valeu d+, mas eu queria saber, se não for aproveitar muito de vc, hehehehehe… se por acaso vc teria um código q valide CNPJ com campo mascarado tbm, como o CPF, é q eu tenho q apresentar meu tcc na sexta feira e preciso validar esse campo ainda e como eu percebi q vc é o cara nesse negocio, então se não for muito abuso meu, vc poderia me ajudar nisso tbm.
Valeu desde já.
olá tudo bom.
olha valeu pela ajuda q vc me deu foi muito boa, resolveu um problemão meu, agradeço de verdade, mas eu precisava de uma outra ajuda, eu sei q não tem nada a ver com esse tópico, mas como eu já percebi q vc é bom nisso e já ta me ajudando pacas aqui, eu gostaria de ver contigo se vc saberia como resolver o problema de mapeamento das classes do banco e de relacionamentos de chaves estrangeiras de n pra n q geram outra tabela, eu não estou usando nenhum framework e estou usando o banco de dados postgreSQL, quero saber como usar as SQLs para resolver esse problema e como tratar tipos float no banco tbm pq ele grava as minhas informações mas quando pesso para atualizar algo ele me retorna um erro dizendo q o campo espera um tipo booleano e eu estou passando um varcharing e não sei como resolver isso, como eu te disse antes sou novata nisso e não tenho muita esperiencia, se puder me ajudar. Estou usando esse tópico pq é mais fácil te encontrar assim. Espero não estar de encomodando muito, hehehehehe.
Agradeço muito. Grande abraço.
Karol, desculpe a demora!
Por conta deste erro, pode ser que voce na hora atualização esta invertendo algum campo no INSERT ou UPDATE.
Mas posta o codigo de erro, e o codigo script de tuas tabelas que ta dando erro.
Qualquer coisa manda uma mp.
[quote=Karol]olá tudo bom.
olha valeu pela ajuda q vc me deu foi muito boa, resolveu um problemão meu, agradeço de verdade, mas eu precisava de uma outra ajuda, eu sei q não tem nada a ver com esse tópico, mas como eu já percebi q vc é bom nisso e já ta me ajudando pacas aqui, eu gostaria de ver contigo se vc saberia como resolver o problema de mapeamento das classes do banco e de relacionamentos de chaves estrangeiras de n pra n q geram outra tabela, eu não estou usando nenhum framework e estou usando o banco de dados postgreSQL, quero saber como usar as SQLs para resolver esse problema e como tratar tipos float no banco tbm pq ele grava as minhas informações mas quando pesso para atualizar algo ele me retorna um erro dizendo q o campo espera um tipo booleano e eu estou passando um varcharing e não sei como resolver isso, como eu te disse antes sou novata nisso e não tenho muita esperiencia, se puder me ajudar. Estou usando esse tópico pq é mais fácil te encontrar assim. Espero não estar de encomodando muito, hehehehehe.
Agradeço muito. Grande abraço.[/quote]
Os campos que são passados do netbenas para o banco devem estar na mesma ordem e serem do mesmo tipo dos parâmetros recebidos pelas suas store precedures…
por ex:
se sua store procedure pede Nome(string),cpf(string) e Idade(int) , no netbenas quando for executar ela vc tem que passar os campos na mesma ordem e serem do mesmo tipo,
confirme também se o tipo delas é o mesmo ta sua tabela…
por ex:
na sua store procedure de insert vc definiu idade como string e na sua tabela ele é int…
Ja tive muitos erros desse tipo e a maioria acontecia por esses motivos
[quote=rodolfo_b_g][quote=Karol]olá tudo bom.
olha valeu pela ajuda q vc me deu foi muito boa, resolveu um problemão meu, agradeço de verdade, mas eu precisava de uma outra ajuda, eu sei q não tem nada a ver com esse tópico, mas como eu já percebi q vc é bom nisso e já ta me ajudando pacas aqui, eu gostaria de ver contigo se vc saberia como resolver o problema de mapeamento das classes do banco e de relacionamentos de chaves estrangeiras de n pra n q geram outra tabela, eu não estou usando nenhum framework e estou usando o banco de dados postgreSQL, quero saber como usar as SQLs para resolver esse problema e como tratar tipos float no banco tbm pq ele grava as minhas informações mas quando pesso para atualizar algo ele me retorna um erro dizendo q o campo espera um tipo booleano e eu estou passando um varcharing e não sei como resolver isso, como eu te disse antes sou novata nisso e não tenho muita esperiencia, se puder me ajudar. Estou usando esse tópico pq é mais fácil te encontrar assim. Espero não estar de encomodando muito, hehehehehe.
Agradeço muito. Grande abraço.[/quote]
Os campos que são passados do netbenas para o banco devem estar na mesma ordem e serem do mesmo tipo dos parâmetros recebidos pelas suas store precedures…
por ex:
se sua store procedure pede Nome(string),cpf(string) e Idade(int) , no netbenas quando for executar ela vc tem que passar os campos na mesma ordem e serem do mesmo tipo,
confirme também se o tipo delas é o mesmo ta sua tabela…
por ex:
na sua store procedure de insert vc definiu idade como string e na sua tabela ele é int…
Ja tive muitos erros desse tipo e a maioria acontecia por esses motivos[/quote]
Assim Rodolfo, no netbeans os meus campos estão exatamente na mesma ordem, tanto no bean, como no DAO e na tela e tbm são do mesmo tipo, são todos float, o problema é que no tabela do meu banco no postgre ele só aceita tipos boolean precision, real, integer e numeric ele não aceita float então é bem provavel que esteja ai o meu problema, mas como q eu faço pra resolver isso, quais desses tipos eu uso.
Abraço.