1
resposta

[Projeto] Validando senha com Regex

package regex.com.senhas.validando;

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

public class ValidandoRegexComSenhas {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Insira a senha:");
        String senha = sc.nextLine();

        Pattern pattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&]).{8,}$");
        Matcher matcher = pattern.matcher(senha);

        boolean valida = matcher.matches();

        if(!valida){
            System.out.println("Senha inválida.");
        }else {
            System.out.println("Senha válida.");
        }
    }
}
1 resposta

Olá, Augusto! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de expressões regulares para validar senhas com Java, utilizou muito bem o Pattern e Matcher para aplicar as regras de verificação e ainda compreendeu a importância da estrutura condicional para fornecer mensagens claras ao usuário. Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é encapsular a lógica de validação em um método separado, tornando o código mais reutilizável e organizado. Assim:

public static boolean validarSenha(String senha) {
    String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&]).{8,}$";
    return senha.matches(regex);
}

Isso faz com que a verificação seja chamada de forma simples, como validarSenha(senha), deixando o main mais limpo e facilitando a manutenção.

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!