天天看點

Java核心技術卷I基礎知識3.3.3 char類型

<b>3.3.3 char類型</b>

char類型原本用于表示單個字元。不過,現在情況已經有所變化。如今,有些unicode字元可以用一個char值描述,另外一些unicode字元則需要兩個char值。有關的詳細資訊請閱讀下一節。

char類型的字面量值要用單引号括起來。例如:'a'是編碼值為65所對應的字元常量。它與"a"不同,"a"是包含一個字元a的字元串。char類型的值可以表示為十六進制值,其範圍從\u0000到\uffff。例如:\u2122表示注冊符号(tm),\u03c0表示希臘字母π。

除了轉義序列\u之外,還有一些用于表示特殊字元的轉義序列,請參看表3-3。所有這些轉義序列都可以出現在加引号的字元字面量或字元串中。例如,'\u2122'或"hello\n"。轉義序列\u還可以出現在加引号的字元常量或字元串之外(而其他所有轉義序列不可以)。例如:

就完全符合文法規則,\u005b和\u005d是[和]的編碼。

表3-3 特殊字元的轉義序列

轉義序列     名稱     unicode值   轉義序列     名稱     unicode值

\b   倒退     \u0008  \” 雙引号  \u0022

\t   制表     \u0009  \’ 單引号  \u0027

\n   換行     \u000a  \\   反斜杠  \u005c

\r   回車     \u000d            

      警告:unicode轉義序列會在解析代碼之前得到處理。例如,"\u0022+\u0022"并不是一個由引号(u+0022)包圍加号構成的字元串。實際上,\u0022會在解析之前轉換為",這會得到""+"",也就是一個空串。

更隐秘地,一定要當心注釋中的\u。注釋

會産生一個文法錯誤,因為讀程式時\u00a0會替換為一個換行符。類似地,下面這個注釋

也會産生一個文法錯誤,因為\u後面并未跟着4個十六進制數。