天天看点

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个十六进制数。