当前位置: 首页 > 教程 > VB.Net >

VB.Net字符串

精华
小牛编辑
146浏览
2023-03-14

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

创建一个字符串对象

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

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

以下示例演示了如何创建对象:

Module strings
   Sub Main()
      Dim fname, lname, fullname, greetings As String
      fname = "Bryant"
      lname = "Kobe"
      fullname = fname + " " + lname
      Console.WriteLine("Full Name: {0}", fullname)

     'by using string constructor'
      Dim letters As Char() = {"H", "e", "l", "l", "o"}
      greetings = New String(letters)
      Console.WriteLine("Greetings: {0}", greetings)

      'methods returning String'
      Dim sarray() As String = {"Hello", "From", "Yiibai", "Yiibai"}
      Dim message As String = String.Join(" ", sarray)
      Console.WriteLine("Message: {0}", message)

      'formatting method to convert a value '
      Dim waiting As DateTime = New DateTime(2018, 12, 12, 17, 58, 1)
      Dim chat As String = String.Format("Message sent at {0:t} on {0:D}", waiting)
      Console.WriteLine("Message: {0}", chat)
      Console.ReadLine()
   End Sub
End Module

执行上面示例代码,得到以下结果 -

F:\worksp\vb.net\string>vbc strings.vb
F:\worksp\vb.net\string>strings.exe
Full Name: Bryant Kobe
Greetings: Hello
Message: Hello From Yiibai Yiibai
Message: Message sent at 17:58 on 2018年12月12日

String类的属性

String类具有以下两个属性:

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

String类的方法

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

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

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

例子

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

比较字符串:

Module strings
   Sub Main()
      Dim str1, str2 As String
      str1 = "This is test"
      str2 = "This is text"
      If (String.Compare(str1, str2) = 0) Then
          Console.WriteLine(str1 + " and " + str2 +
                            " are equal.")
      Else
          Console.WriteLine(str1 + " and " + str2 +
                            " are not equal.")
      End If
      Console.ReadLine()
   End Sub
End Module

当上面的代码被编译并执行时,会产生以下结果:

This is test and This is text are not equal.

字符串包含字符串:

Module strings
   Sub Main()
      Dim str1 As String
      str1 = "This is test"
      If (str1.Contains("test")) Then
          Console.WriteLine("The sequence 'test' was found.")
      End If
      Console.ReadLine()
   End Sub
End Module

当上面的代码被编译并执行时,会产生以下结果:

The sequence 'test' was found.

获取子字符串:

Module strings
   Sub Main()
      Dim str As String
      str = "Last night I dreamt of San Pedro"
      Console.WriteLine(str)
      Dim substr As String = str.Substring(23)
      Console.WriteLine(substr)
      Console.ReadLine()
   End Sub
End Module

当上面的代码被编译并执行时,会产生以下结果:

Last night I dreamt of San Pedro San Pedro.

连接字符串:

Module strings
   Sub Main()
      Dim strarray As String() = {"Down the way where the nights are gay",
                          "And the sun shines daily on the mountain top",
                           "I took a trip on a sailing ship",
                          "And when I reached Jamaica",
                          "I made a stop"}
      Dim str As String = String.Join(vbCrLf, strarray)
      Console.WriteLine(str)
      Console.ReadLine()
   End Sub
End Module

当上面的代码被编译并执行时,会产生以下结果:

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