在java 中,存儲字符的數據類型是char 。但是,C/C++ 程序員要注重:Java 的char與C 或C++ 中的char不同。在C/C++ 中,char的寬是8位整數。但Java 的情況不同。Java 使用Unicode 碼代表字符。Unicode 定義的國際化的字符集能表示迄今為止人類語言的所有字符集。它是幾十個字符集的統一,例如拉丁文,希臘語,阿拉伯語,古代斯拉夫語,希伯來語,日文片假名,匈牙利語等等,因此它要求16位。這樣,Java 中的char 類型是16位,其范圍是0~65,536,沒有負數的char 。人們熟知的標準字符集ASCII 碼的范圍仍然是0~127 ,擴展的8位字符集ISO-Latin-1 的范圍是0~255。既然Java 被設計為答應其開發的applet (小應用程序)在世界范圍內使用,因此使用Unicode 碼代表字符是說得通的。當然,Unicode 的使用對于英語、德語、西班牙語或法語的語言是有點低效,因為它們的字符能輕易地被包含在8位以內。但是為了全球的可移植性,這一點代價是必須的。
注重:有關Unicode 碼的更多信息可在網址http://www.unicode.org 上找到。
下面的程序示范了char 變量:
// Demonstrate char data type.class CharDemo {public static void main(String args[]) { char ch1,ch2;
ch1 = 88; // code for X
ch2 = 'Y';
System.out.PRint("ch1 and ch2:");System.out.println(ch1 + " " + ch2);
}
}
該程序的輸出結果如下:ch1 and ch2:X Y
注重變量ch1 被賦值88,它是ASCII 碼(Unicode 碼也一樣)用來代表字母X的值。前面已提到,ASCII 字符集占用了Unicode 字符集的前127個值。因此以前你使用過的一些字符技巧在Java 中同樣適用。
盡管char 不是整數,但在許多情況中你可以對它們進行運算操作就似乎他們是整數一樣。這答應你可以將2個字符相加,或對一個字符變量值進行增量操作。例如,考慮下面的程序:
// char variables behave like integers.
class CharDemo2 {
public static void main(String args[]) {
char ch1;
ch1 = 'X';
System.out.println("ch1 contains " + ch1);
ch1++; // increment ch1
System.out.println("ch1 is now " + ch1);
}
}
這個程序的輸出結果如下所示:
ch1 contains X
ch1 is now Y
在該程序中,ch1首先被賦值為X。然后變量ch1遞增(自增量1)。結果是ch1 變成了代表Y,即在ASCII (以及 Unicode )字符集中的下一個字符。
新聞熱點
疑難解答