2011-04-03 656 views
7

Estoy tratando de utilizar el método de char isLetter(), que se supone que devuelve el valor booleano correspondiente a si el carácter es una letra. Pero cuando llamo al método, aparece un error que dice que "char no puede ser desreferenciado". No sé lo que significa desreferenciar un char o cómo solucionar el error. la declaración en cuestión es:"Char no se puede desviar" error

if (ch.isLetter()) 
{ 
.... 
.... 
} 

¿Algún auxilio? ¿Qué significa eliminar un char y cómo puedo evitar hacerlo?

+1

No intente llamar a métodos en primitivos. ¿Qué tal Character.isLetter (ch); –

Respuesta

18

El tipo char es una primitiva - no un objeto - por lo que no se puede desreferenciados

Desreferenciar es el proceso de acceder al valor a que se refiere por una referencia. Como un carácter ya es un valor (no una referencia), no se puede desreferenciar.

uso Character clase:

if(Character.isLetter(c)) { 
+1

+1 - aunque también debe tenerse en cuenta que el '.' en' Character.isLetter (c) 'denota el uso de un método estático de' Character'. –

0

supongo ch es una declarados como char. Dado que char es un tipo de datos primitivo y no y objeto, no puede llamar a ningún Methof desde él. Debe usar Character.isLetter(ch).

1

A char no tiene ningún método - es un Java primitive. Está buscando la clase de contenedor Character.

El uso sería:

if(Character.isLetter(ch)) { //... } 
0

Si Character.isLetter(ch) parece un poco prolijo/fea puede utilizar una importación estática.

import static java.lang.Character.*; 


if(isLetter(ch)) { 

} else if(isDigit(ch)) { 

} 
Cuestiones relacionadas