galera, testando aqui, gostaria de garantir que a String a ser fornecida, contivesse sempre letras Maiúsculas, minusculas, números e caracteres especiais.
eu sei que eu posso fazer isso usando “For” mas o método contains, ou algo da classe String não pode resolver isso mais facilmente sem eu ter que criar todo um vetor com o alfabeto ?!
Ja fez uma pesquisa no forum ? ja participei de um topico de um cara que fez algo parecido, da uma procurad ali em cima, no pesquisa do guj =D
Tem a classe Character, eu uso ela pra verificar se uma string contem somente numeros. Da uma googlada:
Character.isDigit é um exemplo, nao faltam exemplos para voce, basta procurar =D
regex faz isso muito facil
[quote=@Claudio_davi]galera, testando aqui, gostaria de garantir que a String a ser fornecida, contivesse sempre letras Maiúsculas, minusculas, números e caracteres especiais.
eu sei que eu posso fazer isso usando “For” mas o método contains, ou algo da classe String não pode resolver isso mais facilmente sem eu ter que criar todo um vetor com o alfabeto ?![/quote]
Isso é uma regra de validação de senha, certo?
Uma única expressão regular não resolve de modo trivial. É melhor usar várias delas. Por exemplo:
public static boolean senhaBoa (final String senha) {
// Criterio 1: Senha com 8 caracteres ou mais
if (senha.length() < 8) return false;
// Criterio 2: Senha contém letras maiúsculas
Pattern p2 = Pattern.compile ("[A-Z]");
if ( ! p2.matcher (senha).find()) return false;
// Criterio 3: Senha contém letras minúsculas
Pattern p3 = Pattern.compile ("[a-z]");
if ( ! p3.matcher (senha).find()) return false;
// Criterio 4: Senha contém dígitos
Pattern p4 = Pattern.compile ("[0-9]");
if ( ! p4.matcher (senha).find()) return false;
// Critério 5: Senha contém um dos seguintes caracteres especiais: + - * / = %
Pattern p5 = Pattern.compile ("[-+*/=%]");
if ( ! p5.matcher (senha).find()) return false;
// senão...
return true;
}
Entendi, eu tinha feito vários métodos menores pra fazer essa validação e fiquei procurando uma maneira mais fácil.
Só não entendi o por que do static no método e final no parâmetro. o resto eu darei uma pesquisada, como sobre esses Patterns que você usou aí 