
3.4.4 字符型
字符型用于保存单个字符,字符型常量要求使用单引号(如 'a')引起来。字符型底层依然是以整型(相当于无符号整型)存储的,因此需要借助一个字符编码集,将每个字符一一对应成一个整型。Java使用的是Unicode字符集,如表3-6所示。Unicode字符集支持全世界所有书面语言的字符,它是固定长度编码方式,兼容ASCII字符集。
表3-6 Unicode字符集

字符型常量值的表示形式有如下几种。
● 用单引号括起来的单个字符的常量值,如 'a' '9'等,注意:“''”是错误的,里面不能没有内容,必须有单个字符。这种表示形式最常见。
● 转义字符'\n' '\t'等。
● 直接使用Unicode值,格式是'\u××××',其中××××表示一个16进制的整数。
● 直接使用十进制整型常量值,如100、98等。
示例代码:

运行测试结果演示图如图3-15所示。

图3-15 运行测试结果演示图
常见的转义字符,如表3-7所示。
表3-7 常见的转义字符

除Unicode字符集,计算机还提供了很多种字符编码格式,常见的有ASCII、ISO 8859-1、GB 2312、GBK、Unicode、UTF-8等,使用频率最高的如UTF-8,如表3-8所示。它们都可以看作字典,规定了转化的规则,按照这个规则就可以让计算机正确地表示字符。
表3-8 常见的字符编码格式

续表

当计算机需要存储某个字符时,首先通过使用的编码集找到对应的编码值,然后存储该值。反过来,当计算机需要显示某个字符时,首先读取该字符的编码值,然后通过使用的编码集显示对应的字符,如图3-16所示,如char c = ‘a’。底层使用97对应的二进制存储,此过程称为编码的过程;相反地,若要读取这个字符,并打印出‘a’,此过程为解码的过程。

图3-16 编码与字符转换关系图