1
resposta

[Projeto] Validando Código de Referência

package f;

import java.util.Scanner;

public class Main {


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



        System.out.println("Digite o código de referência: ");
        String codigo = scanner.nextLine().toUpperCase();

       boolean codigoFormatado = codigo.matches("[A-Z]{3}-\\d{4}");

        if (codigoFormatado) {
            System.out.println("O código de referência está válido.");
        } else {
            System.out.println("Código inválido.");
        }
    }
}
1 resposta

Oi, João Vinicius!

Meus parabéns pela resolução desse desafio focado em validando códigos de referência. É empolgante ver como você utilizou o poder das Expressões Regulares (Regex) pra garantir a padronização de dados de forma tão limpa.

A sua solução é excelente por ser prática: ao usar o método .matches() diretamente na String, você simplifica o código sem perder a precisão da validação. E, o uso do .toUpperCase() na entrada é uma estratégia inteligente de usabilidade, pois permite que o sistema aceite códigos digitados em letras minúsculas e os valide corretamente, facilitando a vida de quem está operando o sistema.

Abaixo, destaquei pontos positivos na sua estrutura:

  • O uso do método .matches() é uma maneira elegante de lidar com Regex em Java quando o objetivo é verificar se a String inteira atende a um padrão.
  • Ao tratar a entrada com toUpperCase(), você torna o software mais amigável, evitando que o usuário precise se preocupar com a tecla Caps Lock.
  • A sua Regex [A-Z]{3}-\\d{4} descreve perfeitamente o "contrato" do código de referência (3 letras, hífen e 4 números).

Pra enriquecer sua jornada no estudo de padrões, vale notar uma pequena diferença técnica: o método matches() do Java já tenta validar a String do início ao fim. No entanto, se você utilizasse outras ferramentas de busca de texto (como o Matcher.find()), seria necessário usar os símbolos ^ (início) e $ (fim) para garantir que não existam caracteres extras antes ou depois do código.

Você pode explorar mais padrões complexos na documentação oficial da classe Pattern.

Conseguiu perceber como as Regex funcionam como um "filtro de segurança" que impede que dados mal formatados cheguem até o seu banco de dados?

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