5.1 字符类Char的使用

视频讲解:光盘\TM\lx\5\01字符类Char的使用.mp4

5.1.1 Char类概述

Char类主要用来存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如’s’表示一个字符。而"s"则表示一个字符串,虽然其只有一个字符,但由于使用双引号,所以它仍然表示字符串,而不是字符。Char的定义非常简单,可以通过下面的代码定义字符。

        Char ch1='L';
        char ch2='1';

注意 Char只定义一个Unicode字符。Unicode字符是目前计算机中通用的字符编码,它为针对不同语言中的每个字符设定了统一的二进制编码,用于满足跨语言、跨平台的文本转换、处理的要求。

5.1.2 Char类的使用

Char类为开发人员提供了许多的方法,可以通过这些方法灵活地操作字符。Char类的常用方法及说明如表5.1所示。

表5.1 Char的常用方法及说明

可以看到Char提供了非常多的实用方法,其中以Is和To开头的比较重要。以Is开头的方法大多是判断Unicode字符是否为某个类别,以To开头的方法主要是转换为其他Unicode字符。

【例5.1】创建一个控制台应用程序,演示如何使用Char类提供的常见方法,代码如下。(实例位置:光盘\TM\sl\5\1)

        static void Main(string[] args)
        {
            char a='a';                                        //声明字符a
            char b='8';                                        //声明字符b
            char c='L';                                        //声明字符c
            char d='.';                                        //声明字符d
            char e='|';                                        //声明字符e
            char f='';                                         //声明字符f
            //使用IsLetter方法判断a是否为字母
            Console.WriteLine("IsLetter方法判断a是否为字母:{0}", Char.IsLetter(a));
            //使用IsDigit方法判断b是否为数字
            Console.WriteLine("IsDigit方法判断b是否为数字:{0}", Char.IsDigit(b));
            //使用IsLetterOrDigit方法判断c是否为字母或数字
            Console.WriteLine("IsLetterOrDigit方法判断c是否为字母或数字:{0}", Char.IsLetterOrDigit(c));
            //使用IsLower方法判断a是否为小写字母
            Console.WriteLine("IsLower方法判断a是否为小写字母:{0}", Char.IsLower(a));
            //使用IsUpper方法判断c是否为大写字母
            Console.WriteLine("IsUpper方法判断c是否为大写字母:{0}", Char.IsUpper(c));
            //使用IsPunctuation方法判断d是否为标点符号
            Console.WriteLine("IsPunctuation方法判断d是否为标点符号:{0}", Char.IsPunctuation(d));
            //使用IsSeparator方法判断e是否为分隔符
            Console.WriteLine("IsSeparator方法判断e是否为分隔符:{0}", Char.IsSeparator(e));
            //使用IsWhiteSpace方法判断f是否为空白
            Console.WriteLine("IsWhiteSpace方法判断f是否为空白:{0}", Char.IsWhiteSpace(f));
            Console.ReadLine();
        }

程序的运行结果如图5.1所示。

图5.1 Char类常用方法的应用

5.1.3 转义字符

转义字符是一种特殊的字符变量,其以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,定义一个字符,而这个字符是单引号,如果不使用转义字符,则会产生错误。

转义字符就相当于一个电源变换器,电源变换器就是通过一定的手段获得所需的电源形式,例如交流变成直流、高电压变为低电压、低频变为高频等。转义字符也是,它是将字符转换成另一种操作形式,或是将无法一起使用的字符进行组合。

注意 转义符\(单个反斜杠)只针对后面紧跟着的单个字符进行操作。

【例5.2】不使用转义字符定义字符,字符的值为单引号,产生错误,代码如下。

        static void Main(string[] args)                     //Main方法
        {
            char M=''';                                     //声明一个字符变量,值为单引号
        }

程序的运行结果如图5.2所示。

图5.2 错误提示

【例5.3】为了避免此错误,应该使用转义字符,代码如下。

        static void Main(string[] args)                          //Main方法
        {
            char a='\'';                                         //使用转义字符定义字符的值为单引号
        }

此外还有其他转义字符,如表5.2所示。

表5.2 转义字符

说明 大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符\(单个反斜杠)通知正则表达式分析器反斜杠后面的字符不是运算符。例如,分析器将r视为字符,而将后跟r的反斜杠(\r)视为回车功能。

【例5.4】创建一个控制台应用程序,然后通过转义字符使Console.Write与Console.WriteLine有相同的效果,代码如下。(实例位置:光盘\TM\sl\5\2)

        static void Main(string[] args)                          //Main方法
        {
            Console.WriteLine("用一生下载你");                     //通过Console.WriteLine输出字符串
            Console.Write("用一生下载你\n");                       //通过使用转义字符输出字符串
            Console.Write("用一生下载你\n芸烨湘枫");                 //通过使用转义字符输出字符串
            Console.ReadLine();
        }

程序的运行结果如图5.3所示。

图5.3 转义字符的使用

闯关训练:尝试使用Char字符实现字母与ASCII的相互转换,提示:在将字母转换为ASCII时,需要用到Encoding编码类;而在将ASCII转换为字母时,直接使用Char强制类型转换即可。