Tenho uma String!!
E queria verificar se ela é constituida apenas por letras ou apenas por digitos, para dar um output :“erro”, caso isso se verifique.
Ex:
Se tiver: Calavera12 “certo”
Se tiver: dslfjsdlkjlkj “erro”
Se tiver: 5454087544 “erro”
[code]boolean isLetter = false;
boolean isDigit = false;
String s = //String para Verificação
char [] c = s.toCharArray();
for(int i = 0; i < c.length; i++){
Character ch = new Character(c[i]);
if(ch.isDigit()){
isDigit = true;
} else if(ch.isLetter()){
isLetter = true;
}
}
if(isDigit && isLetter){
Syste.out.println("’"+s+"’ - certo");
} else {
Syste.out.println("’"+s+"’ - erro");
}[/code]
public class Test {
public static boolean temLetraEDigito (String s) throws Exception {
boolean encontrouLetra = false;
boolean encontrouDigito = false;
char[] c = s.toCharArray();
for (int indice = 0; (indice < c.length) && (encontrouLetra != true || encontrouDigito != true); indice++) {
if (Character.isLetter(c[indice]))
encontrouLetra = true;
else if (Character.isDigit(c[indice]))
encontrouDigito = true;
else
throw new Exception("Caracter Inválido.");
}
return encontrouDigito == encontrouLetra;
}
public static void main(String[] args) {
String s1 = "Calavera12"; //"certo"
String s2 = "dslfjsdlkjlkj"; // "erro"
String s3 = "5454087544"; //"erro"
String s4 = "5454087544|||\"; //"erro"
try {
System.out.print(temLetraEDigito(s1));
System.out.print(temLetraEDigito(s2));
System.out.print(temLetraEDigito(s3));
System.out.print(temLetraEDigito(s4));
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
Vai um exemplo… se tiver dúvidas é só falar… quer dizer postar… hehehehe
Se ele só tiver caracter inválido ele vai retornar:
return false == false;
Isso não é true ?
Pelo exemplo que foi passado, se tiver só letras ou digitos dá erro (conforme exemplo acima). Agora se tiver letras e digitos está certo (conforme exemplo acima).
Foi assim que eu entendi…
Percebes-te bem.
Estava a fazer uma coisa do género!
Mas não estava a dar.
Obrigado, ou como vocês costumam dizer, VALEU!!