Comparar char em um intervalo

5 respostas
Tiberio

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

5 Respostas

Marky.Vasconcelos
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'
E

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;
}
Tiberio

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…

E

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?

Tiberio

Hmm, nao mesmo… ficarei com a ajuda inicial mesmo, muito obrigado a todos…
[]'s

Criado 12 de agosto de 2010
Ultima resposta 12 de ago. de 2010
Respostas 5
Participantes 3