String 数据类型 (Visual Basic)

更新:2007 年 11 月

存储 16 位(2 字节)无符号码位的序列,值的范围从 0 到 65535。每个“码位”(或字符代码)表示单个 Unicode 字符。一个字符串可包含从 0 到将近 20 亿 (2 ^ 31) 个 Unicode 字符。

备注

可使用 String 数据类型存储多个字符,这不会产生 Char()(Char 元素的数组)的数组管理开销。

String 的默认值为 Nothing(null 引用)。注意这与空字符串(值 "")不同。

Unicode 字符

Unicode 的前 128 个码位(0 到 127)对应于标准美国键盘上的字母和符号。这前 128 个码位与 ASCII 字符集中定义的码位相同。随后的 128 个码位(128 到 255)表示特殊字符,如拉丁字母、重音符号、货币符号以及分数。Unicode 使用其余码位 (256-65535) 表示各种符号。其中包括世界上各种文字的字符、音调符号以及数学和技术符号。

可将如 IsDigitIsPunctuation 等方法用于 String 变量中的单个字符,以确定其 Unicode 分类。

格式要求

必须将 String 文本放入引号 (" ") 内。如果必须在字符串中包含引号字符,请使用两个连续的引号 ("")。下面的示例阐释这一点。

Dim j As String = "Joe said ""Hello"" to me."
Dim h As String = "Hello"
' The following messages all display the same thing:
' "Joe said "Hello" to me."
MsgBox(j)
MsgBox("Joe said " & """" & h & """" & " to me.")
MsgBox("Joe said """ & h & """ to me.")

请注意,表示字符串中的引号的连续引号与开始和结束 String 文本的引号无关。

字符串操作

赋给 String 变量一个字符串值后,该字符串为“不可变”,这意味着您不能更改其长度或内容。以任何方式更改字符串时,Visual Basic 将创建一个新字符串并放弃之前的字符串。然后 String 变量指向新字符串。

您可以使用多种字符串函数对 String 变量的内容进行操作。下面的示例演示 Left 函数 (Visual Basic)

Dim S As String = "Database"
' The following statement sets S to a new string containing "Data".
S = Microsoft.VisualBasic.Left(S, 4)

由其他组件创建的字符串可能使用前导或尾随空格填充。如果接收到这种字符串,可以使用 Trim、LTrim 和 RTrim 函数 移除这些空格。

有关字符串操作的更多信息,请参见 字符串 (Visual Basic)

编程提示

  • 负数。 请记住,存放在 String 中的字符无符号,因此不能表示负值。在任何情况下都不应使用 String 存放数值。

  • 互操作注意事项。 如果您使用的不是为 .NET Framework 编写的组件(如自动化或 COM 对象),请记住在其他环境中,字符串字符具有不同的数据长度(8 位)。如果将 8 位字符的字符串参数传递到这种组件,请在新的 Visual Basic 代码中将其声明为 Byte()(Byte 元素数组)而不是 String。

  • 类型字符。 将标识符类型字符 $ 追加到任何标识符,以将其强制转换为 String 数据类型。String 没有文本类型字符。但是,编译器会将包含在双引号 (" ") 中的文本视为 String。

  • Framework 类型。 .NET Framework 中的对应类型是 System.String 类。

请参见

任务

如何:使用无符号类型优化正整数的存储

如何:调用采用无符号类型的 Windows 函数

概念

有效使用数据类型

参考

数据类型摘要 (Visual Basic)

System.String

Char 数据类型 (Visual Basic)

类型转换函数

转换摘要