Bom, galera, estou fazendo um compilador, e gostaria de tirar uma dúvida, eu preciso comparar um char, para saber se ele está em um intervalo de caracteres…
E esse char, eu peguei de uma string.
Por exemplo:
“string”.charAt(0) ----> quero saber se isso está entre a-z ou A-Z.
Abraços
char c = 'j';
System.out.println(c >= 'a' && c <= 'z');//Esta entre 'a' e 'z'
System.out.println(c >= 'A' && c <= 'Z');//Esta entre 'A' e 'Z'
Se você está fazendo um compilador que aceita só ASCII, pode também usar um “switch”. Por incrível que pareça, embora seja muito chato, você pode usar o “switch” eficientemente com chars.
char ch = ...;
...
switch (ch) {
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
... não vou ficar repetindo os cases, pô, mas você pegou a idéia
case 'w': case 'x': case 'y': case 'z':
// tratar o caso de letras
...
break;
}
Eu axei um metodo do wrapper, Character.isletter, algo assim, ele eh bom, soh que nao consegui pegar quais sao os caracteres que ele testa…
isLetter, conforme você deve ter visto na documentação ( http://download.oracle.com/javase/6/docs/api/java/lang/Character.html#isLetter(char) ) , pega um monte de coisas (as letras mesmo de A-Z e a-z, os caracteres acentuados e com outros sinais diacríticos ( Á, ç, ą, Æ etc. ), ideogramas ( 参 ) etc. Você quer isso mesmo?
Hmm, nao mesmo… ficarei com a ajuda inicial mesmo, muito obrigado a todos…
[]'s