- 剑指Java:核心原理与应用实践
- 尚硅谷教育编著
- 634字
- 2023-07-26 16:51:34
3.4.4 字符型
字符型用于保存单个字符,字符型常量要求使用单引号(如 'a')引起来。字符型底层依然是以整型(相当于无符号整型)存储的,因此需要借助一个字符编码集,将每个字符一一对应成一个整型。Java使用的是Unicode字符集,如表3-6所示。Unicode字符集支持全世界所有书面语言的字符,它是固定长度编码方式,兼容ASCII字符集。
表3-6 Unicode字符集
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_40.jpg?sign=1739410949-ceTDdA9w5hIo4D1QqXaNBcY9KJeYXMwn-0-452ecbd395d6b873e1f24685f59ef60b)
字符型常量值的表示形式有如下几种。
● 用单引号括起来的单个字符的常量值,如 'a' '9'等,注意:“''”是错误的,里面不能没有内容,必须有单个字符。这种表示形式最常见。
● 转义字符'\n' '\t'等。
● 直接使用Unicode值,格式是'\u××××',其中××××表示一个16进制的整数。
● 直接使用十进制整型常量值,如100、98等。
示例代码:
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_41.jpg?sign=1739410949-Gmjuy0GpJkhbqefeJvbOsZRcHjG0UOqu-0-d480df6e7ecfc849714985cca63f09d6)
运行测试结果演示图如图3-15所示。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_42.jpg?sign=1739410949-6BcwPWcCtJtshgCXoyObhFVF8sEdtemB-0-2fe3d4425ebb92892021f523bb72b958)
图3-15 运行测试结果演示图
常见的转义字符,如表3-7所示。
表3-7 常见的转义字符
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_43.jpg?sign=1739410949-Ixv6Q4cW86bPxtW5JTXFoh0PsEv8E8py-0-8018ea1cb90c4c64f04b0835a43870cf)
除Unicode字符集,计算机还提供了很多种字符编码格式,常见的有ASCII、ISO 8859-1、GB 2312、GBK、Unicode、UTF-8等,使用频率最高的如UTF-8,如表3-8所示。它们都可以看作字典,规定了转化的规则,按照这个规则就可以让计算机正确地表示字符。
表3-8 常见的字符编码格式
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_44.jpg?sign=1739410949-0GOz9xpxrT8yGvbBmrVPedb1JlkPS0ix-0-77a9a208ca3ed5e1654e5e76515a4137)
续表
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_45.jpg?sign=1739410949-wqkKrMHJwnhTqAjAtBxDsem4RGb63iGI-0-c0738f9130b55ad8c7e65802b5bb7813)
当计算机需要存储某个字符时,首先通过使用的编码集找到对应的编码值,然后存储该值。反过来,当计算机需要显示某个字符时,首先读取该字符的编码值,然后通过使用的编码集显示对应的字符,如图3-16所示,如char c = ‘a’。底层使用97对应的二进制存储,此过程称为编码的过程;相反地,若要读取这个字符,并打印出‘a’,此过程为解码的过程。
![](https://epubservercos.yuewen.com/BBFB00/26895744002143606/epubprivate/OEBPS/Images/txt003_46.jpg?sign=1739410949-bL0gqcguDfdyTBgE2UIegVS94PXxSf4m-0-b08ae3ecb603ecdaad65d63d25791aee)
图3-16 编码与字符转换关系图