Oi, Gabriel! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.
Gostei da forma como você estruturou a validação com regex, cobrindo maiúsculas, minúsculas, número, caractere especial e tamanho mínimo. Isso mostra um bom cuidado com regras de segurança e clareza no código.
Uma dica interessante para o futuro é usar a classe Pattern e Matcher, que deixam a validação mais reutilizável em projetos maiores:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
String regex = "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).{8,}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(senha);
if (matcher.matches()) {
System.out.println("senha valida");
} else {
System.out.println("senha invalida");
}
Esse código separa a regra da verificação, facilitando manutenção e reaproveitamento.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!