bom vou começar com este um codigo em java pra quem curte ir treinando:
este em especifico serve pra validar CPF, não sei se sabem, mas existe uma lógica nos números do CPF...
fizemos este exercício em aula e compartilho com vcs por aqui...
primeiro a classe onde esta a logica, lá no fim a classe main...
public class Cpf {
int[] unFormat(String cpf) {
int[] numeros = new int[11];
int cont = 0;
char c;
for (int i = 0; i < cpf.length(); i++) {
c = cpf.charAt(i);
if ( Character.isDigit( c ) ) {
numeros[cont] = Character.getNumericValue( c );
cont++;
}
}
return numeros;
}
int calculoPrimeiroDigito(int[] numeros) {
int dg = 0;
int soma = 0;
int regra = 10;
int resto = 0;
for (int i = 0; i < numeros.length -2; i++) {
soma += ( numeros[i] * regra);
regra--;
}
resto = 11 - (soma % 11);
if ( (resto != 10) && ( resto != 11) ) {
dg = resto;
}
return dg;
}
int calculoSegundoDigito(int[] numeros) {
int dg = 0;
int soma = 0;
int regra = 11;
int resto = 0;
for (int i = 0; i < numeros.length -1; i++) {
soma += ( numeros[i] * regra);
regra--;
}
resto = 11 - (soma % 11);
if ( (resto != 10) && ( resto != 11) ) {
dg = resto;
}
return dg;
}
boolean autenticaCpf(String str) {
if ( str.length() < 11) {
return false;
}
int[] digitos = unFormat( str );
int d1 = calculoPrimeiroDigito( digitos );
if ( d1 != digitos[9] ) {
return false;
}
int d2 = calculoSegundoDigito( digitos );
if ( d2 != digitos[10] ) {
return false;
}
return true;
}
}
Classe MAIN:
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
System.out.println("Digite o CPF");
Cpf cpf = new Cpf();
if ( cpf.autenticaCpf( leia.next() ) ) {
System.out.println("CPF valido");
} else {
System.out.println("CPF invalido");
}
}
}
este em especifico serve pra validar CPF, não sei se sabem, mas existe uma lógica nos números do CPF...
fizemos este exercício em aula e compartilho com vcs por aqui...
primeiro a classe onde esta a logica, lá no fim a classe main...
public class Cpf {
int[] unFormat(String cpf) {
int[] numeros = new int[11];
int cont = 0;
char c;
for (int i = 0; i < cpf.length(); i++) {
c = cpf.charAt(i);
if ( Character.isDigit( c ) ) {
numeros[cont] = Character.getNumericValue( c );
cont++;
}
}
return numeros;
}
int calculoPrimeiroDigito(int[] numeros) {
int dg = 0;
int soma = 0;
int regra = 10;
int resto = 0;
for (int i = 0; i < numeros.length -2; i++) {
soma += ( numeros[i] * regra);
regra--;
}
resto = 11 - (soma % 11);
if ( (resto != 10) && ( resto != 11) ) {
dg = resto;
}
return dg;
}
int calculoSegundoDigito(int[] numeros) {
int dg = 0;
int soma = 0;
int regra = 11;
int resto = 0;
for (int i = 0; i < numeros.length -1; i++) {
soma += ( numeros[i] * regra);
regra--;
}
resto = 11 - (soma % 11);
if ( (resto != 10) && ( resto != 11) ) {
dg = resto;
}
return dg;
}
boolean autenticaCpf(String str) {
if ( str.length() < 11) {
return false;
}
int[] digitos = unFormat( str );
int d1 = calculoPrimeiroDigito( digitos );
if ( d1 != digitos[9] ) {
return false;
}
int d2 = calculoSegundoDigito( digitos );
if ( d2 != digitos[10] ) {
return false;
}
return true;
}
}
Classe MAIN:
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
Scanner leia = new Scanner(System.in);
System.out.println("Digite o CPF");
Cpf cpf = new Cpf();
if ( cpf.autenticaCpf( leia.next() ) ) {
System.out.println("CPF valido");
} else {
System.out.println("CPF invalido");
}
}
}
Comentários
Postar um comentário