validate cpf java

Solutions on MaxInterview for validate cpf java by the best coders in the world

showing results for - "validate cpf java"
Hugo
05 Oct 2020
1package meuPacote;
2
3import java.util.InputMismatchException;
4
5public class ValidaCPF {
6
7    public static boolean isCPF(String CPF) {
8        // considera-se erro CPF's formados por uma sequencia de numeros iguais
9        if (CPF.equals("00000000000") ||
10            CPF.equals("11111111111") ||
11            CPF.equals("22222222222") || CPF.equals("33333333333") ||
12            CPF.equals("44444444444") || CPF.equals("55555555555") ||
13            CPF.equals("66666666666") || CPF.equals("77777777777") ||
14            CPF.equals("88888888888") || CPF.equals("99999999999") ||
15            (CPF.length() != 11))
16            return(false);
17
18        char dig10, dig11;
19        int sm, i, r, num, peso;
20
21        // "try" - protege o codigo para eventuais erros de conversao de tipo (int)
22        try {
23        // Calculo do 1o. Digito Verificador
24            sm = 0;
25            peso = 10;
26            for (i=0; i<9; i++) {
27        // converte o i-esimo caractere do CPF em um numero:
28        // por exemplo, transforma o caractere '0' no inteiro 0
29        // (48 eh a posicao de '0' na tabela ASCII)
30            num = (int)(CPF.charAt(i) - 48);
31            sm = sm + (num * peso);
32            peso = peso - 1;
33            }
34
35            r = 11 - (sm % 11);
36            if ((r == 10) || (r == 11))
37                dig10 = '0';
38            else dig10 = (char)(r + 48); // converte no respectivo caractere numerico
39
40        // Calculo do 2o. Digito Verificador
41            sm = 0;
42            peso = 11;
43            for(i=0; i<10; i++) {
44            num = (int)(CPF.charAt(i) - 48);
45            sm = sm + (num * peso);
46            peso = peso - 1;
47            }
48
49            r = 11 - (sm % 11);
50            if ((r == 10) || (r == 11))
51                 dig11 = '0';
52            else dig11 = (char)(r + 48);
53
54        // Verifica se os digitos calculados conferem com os digitos informados.
55            if ((dig10 == CPF.charAt(9)) && (dig11 == CPF.charAt(10)))
56                 return(true);
57            else return(false);
58                } catch (InputMismatchException erro) {
59                return(false);
60            }
61        }
62
63        public static String imprimeCPF(String CPF) {
64            return(CPF.substring(0, 3) + "." + CPF.substring(3, 6) + "." +
65            CPF.substring(6, 9) + "-" + CPF.substring(9, 11));
66        }
67    }