String 数据类型 (Visual Basic)

保存 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 函数。

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

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

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

编程提示

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

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

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

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

请参见

任务

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

如何:调用采用无符号类型的 Windows 函数 (Visual Basic)

参考

数据类型摘要 (Visual Basic)

System.String

Char 数据类型 (Visual Basic)

类型转换函数 (Visual Basic)

转换摘要 (Visual Basic)

概念

有效使用数据类型 (Visual Basic)