Reputation: 1253
I'm trying to use the char method isLetter()
, which is supposed to return boolean value corresponding to whether the character is a letter. But when I call the method, I get an error stating that "char cannot be dereferenced." I don't know what it means to dereference a char or how to fix the error. the statement in question is:
if (ch.isLetter())
{
....
....
}
Any help? What does it mean to dereference a char and how do I avoid doing so?
Upvotes: 14
Views: 219648
Reputation: 533500
If Character.isLetter(ch)
looks a bit wordy/ugly you can use a static import.
import static java.lang.Character.*;
if(isLetter(ch)) {
} else if(isDigit(ch)) {
}
Upvotes: -1
Reputation: 47978
The type char is a primitive -- not an object -- so it cannot be dereferenced
Dereferencing is the process of accessing the value referred to by a reference. Since a char is already a value (not a reference), it can not be dereferenced.
use Character
class:
if(Character.isLetter(c)) {
Upvotes: 29
Reputation: 20371
A char
doesn't have any methods - it's a Java primitive. You're looking for the Character wrapper class.
The usage would be:
if(Character.isLetter(ch)) { //... }
Upvotes: 2
Reputation: 137322
I guess ch
is a declared as char
. Since char
is a primitive data type and not and object, you can't call any methof from it. You should use Character.isLetter(ch)
.
Upvotes: 1