2011-04-03 189 views
7

我試圖使用char方法isLetter(),它應該返回對應於該字符是否爲字母的布爾值。但是當我調用該方法時,我收到一個錯誤,指出「char不能被解除引用」。我不知道取消引用char或解決錯誤的含義。該聲明是:「Char can not be dereferenced」error

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

任何幫助嗎?解引用字符意味着什麼?我如何避免這樣做?

+1

不要試圖呼籲元方法。如何Character.isLetter(ch); – 2011-04-03 02:08:33

回答

18

的類型char是一個原始 - 不是一個對象 - 因此它不能被解除引用

解引用是訪問由參考所指的值的處理。由於char已經是一個值(不是引用),所以它不能被解除引用。

使用Character類:

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

+1 - 雖然也應該注意到,'Character.isLetter(c)'中的'。'表示使用了'Character'的靜態方法。 – 2011-04-03 03:34:19

0

我猜ch是一個聲明爲char。由於char是一種原始數據類型,而不是對象,所以不能從中調用任何方法。你應該使用Character.isLetter(ch)

1

A char沒有任何方法 - 這是一個Java primitive。您正在尋找Character包裝類。

的用法是:

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

如果Character.isLetter(ch)看起來有點羅嗦/醜,你可以使用靜態導入。

import static java.lang.Character.*; 


if(isLetter(ch)) { 

} else if(isDigit(ch)) { 

} 
相關問題