2.2.2 字符类型
字符类型char用于表示16位字符,其取值范围对应于Unicode字符集。从技术上说,一个char的大小等同于一个16位无符号整数(ushort)的大小,后者的取值范围是0~65 535。然而,char是C#中的一个独一无二的类型,不应该像这样来对待。
char的BCL名称是System.Char。
初学者主题:Unicode标准
Unicode是用于对人类大多数语言中的字符进行表示的一个国际性标准。它便于计算机系统构建本地化的应用程序,为不同的语言文化显示具有本地特色的字符。
高级主题:16位不足以表示所有Unicode字符
令人遗憾的是,并不是所有Unicode字符都可以用一个16位char来表示。刚开始提出Unicode的概念的时候,它的设计者以为16位已经足够。但随着支持的语言越来越多,才发现当初的假定是错误的。结果是,一些Unicode字符要由一对称为“代理项”的char构成,总共32位。
为了输入一个字符类型的字面量,需要将字符放到一对单引号中,比如'A'。所有键盘字符都可以像这样输入,包括字母、数字以及特殊符号。
有的字符不能直接插入源代码,需要进行特殊处理。这些字符有一个反斜杠(\)前缀,并跟随一个特殊字符代码。我们将反斜杠和特殊字符代码统称为转义序列(escape sequence)。例如,'\n'代表换行符,而'\t'代表制表符。由于反斜杠标志着一个转义序列的开始,所以不能再用来直接表示一个反斜杠字符,而要使用'\\'来表示一个反斜杠字符。
代码清单2-9输出一个单引号,因为\'代表的是一个单引号。
代码清单2-9 使用转义序列来显示一个单引号
class SingleQuote |
表2-4总结了转义序列以及字符的Unicode编码。
表2-4 转义字符
|
转义序列 |
字符名称 |
Unicode编码 |
|
\' |
单引号 |
0x0027 |
|
|
双引号 |
0x0022 |
|
转义序列 |
字符名称 |
Unicode编码 |
|
\\ |
反斜杠 |
0x005C |
|
\0 |
Null |
0x0000 |
|
\a |
Alert (system beep) |
0x0007 |
|
\b |
退格 |
0x0008 |
|
\f |
换页(Form feed) |
0x000C |
|
\n |
换行(Line feed或者newline) |
0x000A |
|
\r |
回车 |
0x000D |
|
\t |
水平制表符 |
0x0009 |
|
\v |
垂直制表符 |
0x000B |
|
\uxxxx |
十六进制Unicode字符 |
\u0029 |
|
\x[n][ n][ n]n |
十六进制Unicode字符(前三个占位符是可选的),\uxxxx的长度可变版本 |
\x3A |
|
\Uxxxxxxxx |
用于创建“代理项”对的Unicode转义序列 |
\UD840DC01( |
可以使用Unicode代码来表示任何字符。为此,请为Unicode值附加\u前缀。可以使用十六进制记数法来表示Unicode字符。例如,字母A的十六进制值是0x41,代码清单2-10使用Unicode字符来显示一个笑脸符号(:)),输出2-8展示了结果。
代码清单2-10 使用Unicode编码来显示一个笑脸符号
System.Console.Write('\u003A'); |
:) |
| 回书目 上一节 下一节 |
|
||||
| · 龙芯要做中国的“奔腾” · 2008年上半年IT技术图.. · 虚拟化的“赤壁之战” · 服务器节能与绿色IT · 微软出价446亿美元收购.. · 脉冲无线电uwb专题 · 802.11n:下一代的无线.. · 云计算时代来临 |
· IT工程师该不该考CCIE.. · 浏览器的战国时代 · 2008年上半年全国软考.. · 无线网络环境 · 无线网状网(MESH) · 无线重中之重:安全问题 · 网络故障排除宝典 · Windows Server 2008专.. |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · 无线网状网(MESH) · Windows远程桌面应用 · C#技术开发指南 |
· Apache技术专题 · Windows集群服务应用 · C#技术开发指南 · 文档格式标准开战 OOXM.. · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 解析35岁技术人的价值.. |
|||