12

我正在尝试使用 char 方法isLetter(),该方法应该返回与字符是否为字母相对应的布尔值。但是当我调用该方法时,我收到一条错误消息,指出“无法取消引用 char”。我不知道取消引用 char 意味着什么或如何修复错误。有问题的陈述是:

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

有什么帮助吗?取消引用 char 是什么意思,我该如何避免这样做?

4

4 回答 4

26

char 类型是一个原始类型——不是一个对象——所以它不能被取消引用

取消引用是访问引用所引用的值的过程。由于 char 已经是一个值(不是引用),它不能被取消引用。

使用Character类:

if(Character.isLetter(c)) {
于 2011-04-03T02:09:24.940 回答
2

Achar没有任何方法 - 它是 Java原语。您正在寻找Character包装类。

用法是:

if(Character.isLetter(ch)) { //... }
于 2011-04-03T02:09:50.880 回答
1

我猜ch是声明为char. 由于char是原始数据类型而不是对象,因此您不能从中调用任何方法。你应该使用Character.isLetter(ch).

于 2011-04-03T02:09:35.190 回答
-1

如果Character.isLetter(ch)看起来有点罗嗦/丑陋,您可以使用静态导入。

import static java.lang.Character.*;


if(isLetter(ch)) {

} else if(isDigit(ch)) {

} 
于 2011-04-03T07:08:35.337 回答