首页 > 编程笔记 > C#笔记 阅读:39

C# char字符类型的用法(非常详细)

C# 程序中,字符数据类型是指单引号' '之间的符号。

下表所示为字符数据类型的概念。

表 1 C#字符数据类型表
C# .NET 类型 长 度 数值范围
char System.Char 16 Unicode 0 ~ 65535

声明字符变量可以使用 char 关键词,每一个 char 所声明的变量占据的内存空间是 16 位,即两个字节(Byte)。因为 2^16=65536,所以每个字符 char 可代表 65536 个不同的值。

在 C# 语言系统中,这 65536 个不同的值是依据 Unicode UTF-16 字符生成的,值的范围则是 0~65535。其中前 256 个不同的值是根据 ASCII 码的值排列的,而这些码的值包含小写字母、大写字母、数字、标点符号及其他一些特殊符号。

声明字符变量需使用 char 关键词,其语法如下:
char 字符变量;
例如,以下是在声明一字符变量 x:
char x1 = 'A';        // 设定字符变量 x1,同时设定内容是 'A'
var x2 = 'B';        // 设定字符变量 x2,同时设定内容是 'B'

我们可以用 sizeof() 函数列出字符的长度:
Console.WriteLine(sizeof(char));
执行结果为:

2

C#设定字符的常值

设计 C# 程序时可以使用以下 3 种方式创建 char 值。
  1. 字符常值:‘A’;
  2. Unicode 的序列值:‘\u’ 后面接 4 个十六进制的值;
  3. 十六进制序列值:‘\x’ 后面接 4 个十六进制的值。

‘\u’ 与 ‘\x’ 使用上仍有区别,对于字符 A 而言,Unicode 的十进制码值是 65,十六进制码值是 ‘\u0041’ 或 ‘\x0041’。在使用十六进制序列值时可以省略数值前的 00,例如,以下表示是允许的:
'\x41' // 允许
在使用 Unicode 的序列值时,以下表示是不允许的:
'\u41' // 不允许

例如,声明一字符变量 x,将其码值设为十六进制的 ‘\u0041’:
char x = '\u0041';
或是:
char x = '\x0041';
或是:
char x = '\x41';

【实例】设定字符的应用。
char x1 = 'A';
char x2 = '\u0042';
char x3 = '\x0043';
Console.WriteLine($"x1 = {x1}");
Console.WriteLine($"x2 = {x2}");
Console.WriteLine($"x3 = {x3}");
char x4 = '\x44'; // 另一种写法
Console.WriteLine("{0} {1} {2} {3}", x1, x2, x3, x4);
执行结果为:

x1 = A
x2 = B
x3 = C
A B C D

程序第 8 行主要是让读者体会,在同一行输出多个变量的另一种方法,在大括号内的数值参数可以指定所对应的变量位置。

C#转义字符

在 Unicode 的字符内,有一些无法打印的字符,这些字符的特性是含有“\”符号,如‘\0’,我们又称这些字符为转义字符(Escape character)。

下表所示为这些转义字符。

表 2 转义字符表
整数值 转义字符 Unicode 序列值 字符名称
0 ‘\0’ ‘\u0000’ 空格 (null space)
7 ‘\a’ ‘\u0007’ 响铃 (bell ring)
8 ‘\b’ ‘\u0008’ 退格 (backspace)
9 ‘\t’ ‘\u0009’ 标识 (tab)
10 ‘\n’ ‘\u000A’ 换行 (newline)
12 ‘\f’ ‘\u000C’ 送表 (form feed)
13 ‘\r’ ‘\u000D’ 回车 (carriage return)
34 ‘\”’ ‘\u0022’ 双引号 (double quote)
39 ‘\’’ ‘\u0027’ 单引号 (single quote)
92 ‘\\’ ‘\u005C’ 倒斜线 (back slash)

【实例】测试转义字符‘\n’可以换行输出,‘\t’类似按 Tab 键可以标记新位置输出。
char x1 = 'A';
char x2 = '\u0042';
char x3 = '\x0043';
char x4 = '\x44'; // 另一种写法
Console.WriteLine("{0}\t{1}\t{2}\t{3}", x1, x2, x3, x4);
Console.WriteLine("{0}\n{1}\n{2}\n{3}", x1, x2, x3, x4);
Console.WriteLine("{0} {1} \u000A{2} {3}", x1, x2, x3, x4);
执行结果为:

A    B    C    D
A B
C D
A B
C D

相关文章