Como eu faço pra validar se um textfield tem números ou se contém letras ou os dois?
Você pode usar Expressões regulares. Pesquise pela classe Regex, da biblioteca java.util.
e que tal “só” permitir entrada de letras / numeros ?
Crie uma sequencia de chars válidos para entrada
Pesquisa por isso que aqui no forum ja vi muitos tópicos sobre esse assunto
if(Pattern.compile("[\\d\\D]").matcher(getSeuTextField()).matches()) {
// Achou números ou letras somente no seu texto, faça o que quiser daqui pra baixo.
}
[quote=pgioseffi]if(Pattern.compile("[\\d\\D]").matcher(getSeuTextField()).matches()) {
// Achou números ou letras somente no seu texto, faça o que quiser daqui pra baixo.
}
[/quote]
Bom Dia
Esse exemplo não funciona para “casar” somente letras e números, pois o \D aceita todos os caracteres diferentes de números(assim símbolos e espaços também são aceitos).
O ideal é utilizar uma lista para especificar exatamente o que ser quer. Para letras e números eu faria: “[A-Za-z0-9]+”. Poderia ser “(\w\d)+” , mas a primeira forma fica mais clara até mesmo para quem não está familiarizado com expressões regulares.
[A-Za-z0-9]+ “Casa palavras que contenham apenas letras e números sem espaços, caso deseje com espaços deve inserir na lista \s”
if(jTextField.getText().matches("[A-Za-z0-9]+")){
System.out.println("Casou:" + jTextField.getText());
}
else{
System.out.println("Texto Inválido!");
}
Danilo,
Você foi perfeito em sua colocação. Realmente o “\D” pega além do necessário.