字符型char在java語言中占用2個字節,char類型的字面量必須使用半角的單引號括起來,取值范圍為[0-65535],char和short都占用2個字節,但是char可以取到更大的正整數,因為char類型沒有負數。java語言中的char類型變量可以容納一個漢字。請看以下程序:
public class CharTest01 {
public static void main(String[] args) {
char c1 = 'a';
System.out.println(c1);
System.out.println(c1 + 1);
char c2 = '中';
System.out.println(c2);
char c3 = "中";
System.out.println(c3);
char c4 = 97;
System.out.println(c4);
}
}
編譯報錯:
圖4-1:編譯報錯
以上代碼編譯報錯:原因是類型不兼容,使用雙引號括起來的一定是字符串類型,不能賦值給char類型的變量。將錯誤代碼注釋之后并運行:
運行結果如下圖所示:
圖4-2:char類型測試
我來解釋一下以上的輸出結果:c1 + 1為什么是98呢?因為c1是char類型,1是int類型,char類型和int類型混合運算的時候char類型會自動轉換成int類型,然后再做運算,a對應的ASCII碼是97,所以最終結果是98。另外還有一行代碼char c4 = 97,由于c4是char類型,所以會把97看做ASCII碼,所以c4是’a’字符。
接下來,我們來看一看關于轉義字符:\,請看以下代碼:
public class CharTest02 {
public static void main(String[] args) {
char c1 = 't';
System.out.println("這是一個普通的字符 = " + c1);
char c2 = '\t';
System.out.println("abc" + c2 + "def");
}
}
編譯通過了,并且運行結果如下圖所示:
圖4-3:\t
表面看起來’\t’是由兩個字符構成,按說應該編譯報錯,因為它畢竟是一個字符串,最終的結果編譯通過了,這還是說明’\t’是一個字符,所以\具有轉義功能,根據以上輸出結果可以看出\t是制表符。接下來我們來看一看其它的轉義字符。
public class CharTest03 {
public static void main(String[] args) {
System.out.println("換行符 = hello\nworld");
System.out.println("普通的單引號 = " + '\'');
System.out.println("普通的斜杠=" + '\\');
System.out.println("普通的雙引號=" + "\"");
System.out.println('\u4e2d');
}
}
運行結果如下圖所示:
圖4-4:轉義字符
通過以上的測試:\n表示換行符,\’表示普通的單引號字符,\\表示一個普通的\字符,\”表示一個普通的雙引號字符,\u后面的十六進制是文字的Unicode編碼。