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");
        }
      
       
    }
          
}

Comentários

Postagens mais visitadas