Ошибка "Char не может быть разыменована" - PullRequest
11 голосов
/ 03 апреля 2011

Я пытаюсь использовать метод char isLetter(), который должен возвращать логическое значение, соответствующее тому, является ли символ буквой. Но когда я вызываю метод, я получаю сообщение об ошибке, в котором говорится, что «символ не может быть разыменован». Я не знаю, что значит разыменовать символ или как исправить ошибку. рассматриваемое утверждение:

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

Любая помощь? Что значит разыменовать символ и как мне избежать этого?

Ответы [ 4 ]

21 голосов
/ 03 апреля 2011

Тип char является примитивом, а не объектом, поэтому его нельзя разыменовать

Разыменование - это процесс доступа к значению, на которое ссылается ссылка. Поскольку символ уже является значением (не ссылкой), его нельзя разыменовать.

использование Character класс:

if(Character.isLetter(c)) {
1 голос
/ 03 апреля 2011

A char не имеет никаких методов - это примитив Java .Вы ищете класс Character .

Использование будет:

if(Character.isLetter(ch)) { //... }
1 голос
/ 03 апреля 2011

Я думаю, ch объявлено как char. Поскольку char является примитивным типом данных, а не объектом, вы не можете вызывать метаф из него. Вы должны использовать Character.isLetter(ch).

0 голосов
/ 03 апреля 2011

Если Character.isLetter(ch) выглядит немного многословно / безобразно, вы можете использовать статический импорт.

import static java.lang.Character.*;


if(isLetter(ch)) {

} else if(isDigit(ch)) {

} 
...