Visual Basic 字符串

在 VB 中,可以使用字符串作为字符数组,但更常见的做法是使用 String 关键字来声明一个字符串变量。String 关键字是 System.String 类的别名。


创建一个字符串对象

可以使用以下方法之一创建字符串对象:

  • 通过将一个字符串文字分配给一个 String
  • 变量通过使用一个 String 类的构造函数
  • 通过使用字符串连接运算符 (+)
  • 通过检索一个属性或调用返回一个字符串的方法
  • 通过调用格式化方法将值或对象转换为其字符串表示形式

下面的实例演示了如何创建对象:

  1. Module strings
  2. Sub Main()
  3. Dim fname, lname, fullname, greetings As String
  4. fname = "Rowan"
  5. lname = "Atkinson"
  6. fullname = fname + " " + lname
  7. Console.WriteLine("Full Name: {0}", fullname)
  8. 'by using string constructor
  9. Dim letters As Char() = {"H", "e", "l", "l", "o"}
  10. greetings = New String(letters)
  11. Console.WriteLine("Greetings: {0}", greetings)
  12. 'methods returning String
  13. Dim sarray() As String = {"Hello", "From", "Tutorials", "Point"}
  14. Dim message As String = String.Join(" ", sarray)
  15. Console.WriteLine("Message: {0}", message)
  16. 'formatting method to convert a value
  17. Dim waiting As DateTime = New DateTime(2012, 12, 12, 17, 58, 1)
  18. Dim chat As String = String.Format("Message sent at {0:t} on {0:D}", waiting)
  19. Console.WriteLine("Message: {0}", chat)
  20. Console.ReadLine()
  21. End Sub
  22. End Module

String 类的属性

String 类具有以下两个属性:

编号属性名称说明
1Chars获取当前String对象中指定位置的Char对象。
2Length获取当前String对象中的字符数量。

String 类的方法

String 类有许多方法可以用来处理 String 对象。下面列表提供了一些最常用的方法:

编号方法描述
1Public Shared Function Compare ( strA As String, strB As String ) As Integer比较两个指定的字符串对象,并返回一个整数,按顺序指定它们的相对位置。
2Public Shared Function Compare ( strA As String, strB As String, ignoreCase As Boolean ) As Integer比较两个指定的字符串对象,并返回一个整数,按顺序指定它们的相对位置。但是,如果 ignoreCase 参数为 true,则会忽略大小写。
3Public Shared Function Concat ( str0 As String, str1 As String ) As String连接两个字符串对象。
4Public Shared Function Concat ( str0 As String, str1 As String, str2 As String ) As String连接三个字符串对象。
5Public Shared Function Concat ( str0 As String, str1 As String, str2 As String, str3 As String ) As String连接四个字符串对象。
6Public Function Contains ( value As String ) As Boolean返回一个值,表示指定的字符串对象是否在此字符串中出现。
7Public Shared Function Copy ( str As String ) As String用与指定字符串相同的值创建一个新的 String 对象。
8Public Sub CopyTo ( sourceIndex As Integer, destination As Char(), destinationIndex As Integer, count As Integer )从字符串对象的指定位置复制指定数量的字符到 Unicode 字符数组中指定的位置。
9Public Function EndsWith ( value As String ) As Boolean确定字符串对象的末尾是否与指定的字符串匹配。
10Public Function Equals ( value As String ) As Boolean判断当前的字符串对象和指定的字符串对象是否具有相同的值。
11Public Shared Function Equals ( a As String, b As String ) As Boolean判断两个指定的字符串对象是否具有相同的值。
12Public Shared Function Format ( format As String, arg0 As Object ) As String用指定对象的字符串表现形式替换指定字符串中的一个或多个格式项。
13Public Function IndexOf ( value As Char ) As Integer返回当前字符串中第一个出现的指定 Unicode 字符的位置索引,从 0 开始。
14Public Function IndexOf ( value As String ) As Integer返回此实例中第一次出现指定字符串的位置索引,从 0 开始计算。
15Public Function IndexOf ( value As Char, startIndex As Integer ) As Integer返回此字符串中第一个出现的指定 Unicode 字符的位置索引(从 0 开始),从指定的字符位置开始搜索。
16Public Function IndexOf ( value As String, startIndex As Integer ) As Integer返回此实例中指定字符串的第一个匹配项的位置索引(从 0 开始),从指定的字符位置开始搜索。
17Public Function IndexOfAny ( anyOf As Char() ) As Integer返回指定的 Unicode 字符数组中任何字符的第一次出现的位置索引,从 0 开始。
18Public Function IndexOfAny ( anyOf As Char(), startIndex As Integer ) As Integer返回指定 Unicode 字符数组中任何字符的此实例中第一次出现的位置索引(从 0 开始),从指定的字符位置开始搜索。
19Public Function Insert ( startIndex As Integer, value As String ) As String返回一个新字符串,其中指定的字符串被插入到当前字符串对象中的指定的索引位置。
20Public Shared Function IsNullOrEmpty ( value As String ) As Boolean表示指定的字符串是否为空或空字符串。
21Public Shared Function Join ( separator As String, ParamArray value As String() ) As String使用每个元素之间指定的分隔符连接字符串数组的所有元素。
22Public Shared Function Join ( separator As String, value As String(), startIndex As Integer, count As Integer ) As String使用每个元素之间指定的分隔符连接字符串数组的指定元素。
23Public Function LastIndexOf ( value As Char ) As Integer返回当前字符串对象中最后一次出现的指定 Unicode 字符的索引位置,从 0 开始。
24Public Function LastIndexOf ( value As String ) As Integer返回当前字符串对象中最后一次出现的指定字符串的索引位置,从 0 开始。
25Public Function Remove ( startIndex As Integer ) As String删除当前实例中从指定位置开始到最后的所有字符,然后返回结果字符串。
26Public Function Remove ( startIndex As Integer, count As Integer ) As String从指定位置开始删除当前字符串中指定数量的字符并返回结果字符串。
27Public Function Replace ( oldChar As Char, newChar As Char ) As String用指定的 Unicode 字符替换当前字符串对象中指定的 Unicode 字符的所有匹配项并返回新的字符串结果。
28Public Function Replace ( oldValue As String, newValue As String ) As String用指定的字符串替换当前字符串对象中指定字符串的所有匹配项并返回新的字符串结果。
29Public Function Split ( ParamArray separator As Char() ) As String()将目标字符串按照指定的 Unicode 字符进行拆分成字符串数组,并返回该数组
30Public Function Split ( separator As Char(), count As Integer ) As String()将目标字符串按照指定的 Unicode 字符进行拆分成字符串数组,并返回该数组。count 参数指定要返回的字符串数组的最大数量。
31Public Function StartsWith ( value As String ) As Boolean判断此字符串实例的开始是否与指定的字符串匹配。
32Public Function ToCharArray As Char()返回一个 Unicode 字符数组,其中包含当前字符串 object 中的所有字符
33Public Function ToCharArray ( startIndex As Integer, length As Integer ) As Char()返回一个 Unicode 字符数组,其中包含当前字符串对象中的所有字符,从指定的索引开始,直到指定的长度。
34Public Function ToLower As String返回转换为小写字符串的副本。
35Public Function ToUpper As String返回转换为大写字符串的副本。
37Public Function Trim As String从当前 String 对象中删除所有前置和末尾空格字符。

上面的方法列表并不详尽,可以请访问 MSDN 库以获取完整的方法列表和 String 类的构造方法。


实例

以下实例演示了上面提到的一些方法:

  1. Module strings
  2. Sub Main()
  3. Dim str1, str2 As String
  4. str1 = "This is test"
  5. str2 = "This is text"
  6. If (String.Compare(str1, str2) = 0) Then
  7. Console.WriteLine(str1 + " and " + str2 + " are equal.")
  8. Else
  9. Console.WriteLine(str1 + " and " + str2 + " are not equal.")
  10. End If
  11. Console.ReadLine()
  12. End Sub
  13. End Module

结果如下:

  1. This is test and This is text are not equal.
  1. Module strings
  2. Sub Main()
  3. Dim str1 As String
  4. str1 = "This is test"
  5. If (str1.Contains("test")) Then
  6. Console.WriteLine("The sequence 'test' was found.")
  7. End If
  8. Console.ReadLine()
  9. End Sub
  10. End Module

结果如下:

  1. The sequence 'test' was found.
  1. Module strings
  2. Sub Main()
  3. Dim str As String
  4. str = "Last night I dreamt of San Pedro"
  5. Console.WriteLine(str)
  6. Dim substr As String = str.Substring(23)
  7. Console.WriteLine(substr)
  8. Console.ReadLine()
  9. End Sub
  10. End Module

结果如下:

  1. Last night I dreamt of San Pedro San Pedro.
  1. Module strings
  2. Sub Main()
  3. Dim strarray As String() = {
  4. "Down the way where the nights are gay",
  5. "And the sun shines daily on the mountain top",
  6. "I took a trip on a sailing ship",
  7. "And when I reached Jamaica",
  8. "I made a stop"
  9. }
  10. Dim str As String = String.Join(vbCrLf, strarray)
  11. Console.WriteLine(str)
  12. Console.ReadLine()
  13. End Sub
  14. End Module

结果如下:

  1. Down the way where the nights are gay
  2. And the sun shines daily on the mountain top
  3. I took a trip on a sailing ship
  4. And when I reached Jamaica
  5. I made a stop