1
resposta

[Projeto] ValidandoCPF

package f;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Digite o CPF:");
        String cpf = scanner.nextLine();

        Pattern pattern = Pattern.compile("\\d{3}.\\d{3}-\\d{2}");
        Matcher matcher = pattern.matcher(cpf);

        if(matcher.find()){
            System.out.printf("O CPF %s está no formato válido", cpf);
        } else{
            System.out.printf("O CPF %s não está no formato válido", cpf);
        }
    }
}
1 resposta

Oi, João! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Achei interessante como você utilizou Pattern e Matcher para validar o CPF, isso mostra que você já está explorando bem o uso de regex em Java. Um ponto importante é que o formato do CPF tem 11 dígitos, normalmente como xxx.xxx.xxx-xx, e no seu padrão está faltando uma parte dessa estrutura.

Uma dica interessante para o futuro é usar o método matches() pra validar a string inteira de uma vez, sem precisar do find().


String cpf = "123.456.789-10";

boolean valido = cpf.matches("\\d{3}\\.\\d{3}\\.\\d{3}-\\d{2}");

System.out.println(valido);

Esse código verifica se toda a string segue o formato correto do CPF, usando matches, que retorna true ou false.

Para se aprofundar em como o Java interpreta esses símbolos, recomendo a leitura sobre Metacaracteres em Regex, que detalha a função de cada marcador.

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