购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6 字符串和字符

C#的 char (System.Char类型的别名)类型表示一个Unicode字符并占用两个字节(UTF-16)。 char 字面量应位于两个单引号之间:

转义序列指那些不能用字面量表示或解释的字符。转义字符由反斜线和一个表示特殊含义的字符组成,例如:

表2-2中列出了转义序列字符。

表2-2:转义序列字符

表2-2:转义序列字符(续)

\u (或 \x )转义字符通过4位十六进制代码来指定任意Unicode字符:

2.6.1 char转换

若从 char 类型隐式转换为数值类型,则这个数值类型必须能够容纳无符号 short 类型。对于其他的数值类型,则需要显式转换。

2.6.2 字符串类型

C#中的字符串类型( System.String 类型的别名,我们将在第6章详细介绍)表示不可变(创建之后即无法更改)的Unicode字符序列。字符串字面量应位于两个双引号之间:

string 类型是引用类型而不是值类型,但是它的相等运算符却遵守值类型的语义:

字符串中的转义字符和 char 字面量的转义字符是一致的:

这意味着当需要一个反斜杠时,需要写两次才可以:

为避免这种情况,C#引入了原意字符串字面量。原意字符串字面量要加 @ 前缀,它不支持转义字符。下面的原意字符串和之前的字符串是一样的:

原意字符串可以贯穿多行:

原意字符串中需要用两个双引号来表示一个双引号字符:

2.6.2.1 字符串连接

+ 运算符可连接两个字符串:

如果操作数之一是非字符串值,则会调用 ToString 方法将其转换为字符串:

重复使用 + 运算符来构建字符串是低效的。更好的解决方案是使用 System.Text.StringBuilder 类型(将在第6章介绍)。

2.6.2.2 字符串插值

$ 字符为前缀的字符串称为插值字符串。插值字符串可以在大括号内包含表达式:

大括号内可以是任意类型的合法C#表达式。C#会调用 ToString 方法或等价方法将表达式转换为字符串。如需更改表达式的格式,可以使用冒号,并附加格式字符串(我们将在6.1.2.7节中进行详细介绍):

如果代码中的冒号有其他用途(例如,三元条件运算符),则需要将整个表达式使用括号包裹起来:

插值字符串只能在单行内声明。如需在多行中声明字符串,请使用原意字符串运算符:

若要在插值字符串中表示大括号,只需书写两个大括号字符即可。

2.6.2.3 字符串比较

string 类型不支持 < > 的比较,必须使用字符串的 CompareTo 方法。我们将在第6章介绍这部分内容。

2.6.2.4 常量字符串插值(C# 10)

从C# 10开始,如果字符串插值中的值为常量(字符串),则插值后的字符串仍然可以是常量: WtII0WYdl27Kb/KM3FuDgbyLwbki63VNGUgl9IfY/uaywEBU8mOZrDHOEUlswCSs

点击中间区域
呼出菜单
上一章
目录
下一章
×