字符类型(char)用于单个字符,而字符串类型(string)用于处理一个字符序列。在.NET Framework环境中,字符和字符串都使用Unicode标准,这样就可以用效地处理世界各地的语言、文字和符号。

在C#中,字符类型使用char关键字定义,对应于System.Char结构类型,字面量应包含在一对英文半角的单引号中,如'A'、'1'、'*'等,唯一需要应用的字符是单引号本身,如果需要定义一个单引号字符,应使用\字符进行转义,如'\''。

使用字符时,还可以在字符和整数之间进行转换,而整数值就是字符的编码;下面的代码演示了字符的定义和转换操作。

static void Main(string[] args)
{
    char ch = 'A';
    uint code = ch;
    //
    Console.WriteLine("字符:{0}  代码:{1}", ch, code);
}

代码执行结果如下图所示。

enter image description here

需要将数值转换为字符时,应进行强制转换,如下面的代码。

static void Main(string[] args)
{
    uint code = 36;
    char ch = (char)code;
    //
    Console.WriteLine("字符:{0}  代码:{1}", ch, code);
}

代码执行结果如下图所示。

enter image description here

字符串类型,在C#中使用string关键字定义,对应System.String类类型;请注意,字符串是引用类型,但是,String类型定义的是不可变字符串,也就是说,在内存中定义的字符串对象是不可修改的,一但有任何的变化,都会重新分配内存(即重新分配对象的数据区域)。所以,对于字符串的修改等操作效率并不高,此时,可以使用StringBuilder类,在后续的课程中会讨论相关应用。

接下来,我们看一下字符串的基本应用。

字符串内容使用一对英文半角双引号定义,如"abc",可以包含任何Unicode编码的字符内容,不过,对于一些特殊符号还需要进行转义处理,如:

enter image description here

大家可以思考下面代码的输出结果。

static void Main(string[] args)
{
    string s = "\'Hello C#\'";
    //
    Console.WriteLine(s);
}

代码执行结果如下图所示。

enter image description here

实际应用中,如果字符串包含了大量的特殊字符,那么,书写起来可能比较麻烦,而且容易出错,此时,可以使用逐字字符串,其格式是在双引号定义的字符串前添加一个@符号,如下面的代码。

static void Main(string[] args)
{
    string s = @"c:\log.txt";
    //
    Console.WriteLine(s);
}

s字符串中定义了一个文件的路径,使用逐字字符串时,可以简化路径分隔符的书写,很多时候,这是代码书写时很容易出错的地方。显示结果如下图所示。

enter image description here

在逐字字符串中,唯一需要转义的字符是双引号,如下面的代码。

static void Main(string[] args)
{
    string s = @"""Hello""";
    //
    Console.WriteLine(s);
}

代码显示结果如下图所示。

enter image description here

本课,我们了解了字符和字符串的基本应用,在需要大量的字符串操作时,可以参考StringBuilder类等资源,后续会有相关内容。

CHY软件小屋原创作品!