問題闡述
在 Java 語言中,是否可以將字符與代表字符的編碼進行比較?
在 Java 語言中,字符類型用于存儲單個字符,它占用 16 位(2 字節(jié))的內(nèi)存空間,使用關鍵字 char 進行標識。
因為計算機只能存儲二進制數(shù)據(jù),所以需要將字符通過一串二進制數(shù)據(jù)來表示,也就是通常所說的字符編碼。Java 對字符采用 Unicode 字符編碼,Unicode 使用 2 字節(jié)表示 1個字符,并且 Unicode 字符集中的前 128 個字符與 ASCII 字符集兼容。
例如,字符a的 ASCII 編碼的二進制數(shù)據(jù)形式為 01100001,Unicode 字符編碼的二進制數(shù)據(jù)形式為 00000000 01100001,它們都表示十進制數(shù) 97。從中可以看出與 C、C++一樣,Java 同樣把字符作為整數(shù)對待。所以,在進行條件判斷時,就可以將字符與代表字符的編碼進行比較。例如,下面的代碼將輸出“條件成立”。
public static void main(String[] args) {
if (d == 100) {
System.out.println("條件成立");
} else {
System.out.println(("條件不成立");
}
注意:
在上面的代碼中,由于字符d的編碼為 100,所以等式“d == 100”成立。如果將字符 d 兩側的單引號換成雙引號,程序?qū)⒊鲥e。這是因為 Java 中的字符常量值必須用英文狀態(tài)下的一對單引號括起來。
點評
在程序設計中,字符型數(shù)據(jù)使用得比較頻繁。它占用 2 字節(jié),以單引號表示。在此要注意的是,字符與字符串是不同的。例如,a表示一個字符,"a"就表示一個字符串。雖然都只有一個字符,但由于后者使用雙引號括起來,所以它仍然表示字符串。字符型只能表示單個字符,任何超過一個字符的內(nèi)容,都不能被聲明為字符型。如果一個變量被聲明為字符型,也就是使用 char 關鍵字進行聲明,那么這個變量只能被賦予一個整數(shù)值,或是用單引號括起來的一個字符。