1
resposta

Validando cpf

package com.vn.challenge7;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String cpf;
        boolean valido = false;
        do {
            System.out.print("Digite o CPF: ");
            cpf = sc.nextLine().trim();

            if (!cpf.matches("[\\d.\\-\\s]+")) {
                System.out.println("CPF inválido.\n");
                continue;
            }

            String somenteNumeros = cpf.replaceAll("[.\\-\\s]", "");

            if (somenteNumeros.matches("\\d{11}")) {
                cpf = somenteNumeros.replaceAll("(\\d{3})(\\d{3})(\\d{3})(\\d{2})", "$1.$2.$3-$4");
                valido = true;
            } else {
                System.out.println("CPF inválido.\n");
            }

        } while (!valido);

        System.out.println("CPF válido: " + cpf);

        sc.close();
    }
}
1 resposta

Olá, Vinicius! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de expressões regulares para validar entradas com Java, utilizou muito bem a manipulação de strings para formatar o CPF e ainda compreendeu a importância da estrutura de repetição para garantir que o usuário forneça dados corretos.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!