VB.Net 字符串



  • 字符串

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

    您可以使用以下方法之一创建 String 对象-
    • 通过将字符串字面量分配给String变量
    • 通过使用String类构造函数
    • 通过使用字符串串联运算符(+)
    • 通过检索属性或调用返回字符串的方法
    • 通过调用格式化方法将值或对象转换为其字符串表示形式
    以下示例演示了这一点-
    
    Module strings
       Sub Main()
          Dim fname, lname, fullname, greetings As String
          fname = "Rowan"
          lname = "Atkinson"
          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", "Tutorials", "Point"}
          Dim message As String = String.Join(" ", sarray)
          Console.WriteLine("Message: {0}", message)
    
          'formatting method to convert a value 
          Dim waiting As DateTime = New DateTime(2012, 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
    
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Full Name: Rowan Atkinson
    Greetings: Hello
    Message: Hello From Tutorials Point
    Message: Message sent at 5:58 PM on Wednesday, December 12, 2012
    
    
  • String 类的属性

    String 类具有以下两个属性-
    属性 功能
    Chars 获取当前字符串对象中指定位置的Char对象。
    Length 获取当前字符串对象中的字符数。
  • 字符串类的方法

    String 类具有许多方法,可帮助您处理字符串对象。下表提供了一些最常用的方法-
    方法 描述
    Public Shared Function Compare ( strA As String, strB As String ) As Integer 比较两个指定的字符串对象并返回一个整数,该整数指示它们在排序顺序中的相对位置。
    Public Shared Function Compare ( strA As String, strB As String, ignoreCase As Boolean ) As Integer 比较两个指定的字符串对象并返回一个整数,该整数指示它们在排序顺序中的相对位置。但是,如果布尔参数为真,则忽略大小写。
    Public Shared Function Concat ( str0 As String, str1 As String ) As String 连接两个字符串对象。
    Public Shared Function Concat ( str0 As String, str1 As String, str2 As String ) As String 连接三个字符串对象。
    Public Shared Function Concat (str0 As String, str1 As String, str2 As String, str3 As String ) As String 连接四个字符串对象。
    Public Function Contains ( value As String ) As Boolean 返回一个值,该值指示指定的字符串对象是否出现在此字符串中。
    Public Shared Function Copy ( str As String ) As String 创建与指定字符串具有相同值的新字符串对象。
    pPublic Sub CopyTo ( sourceIndex As Integer, destination As Char(), destinationIndex As Integer, count As Integer ) 将指定数目的字符从字符串对象的指定位置复制到Unicode字符数组中的指定位置。
    Public Function EndsWith ( value As String ) As Boolean 确定字符串对象的结尾是否与指定的字符串匹配。
    Public Function Equals ( value As String ) As Boolean 确定当前字符串对象和指定的字符串对象是否具有相同的值。
    Public Shared Function Equals ( a As String, b As String ) As Boolean 确定两个指定的字符串对象是否具有相同的值。
    Public Shared Function Format ( format As String, arg0 As Object ) As String 将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式。
    Public Function IndexOf ( value As Char ) As Integer 返回指定的Unicode字符在当前字符串中的第一个匹配项的从零开始的索引。
    Public Function IndexOf ( value As String ) As Integer 返回指定字符串在此实例中的第一个匹配项的从零开始的索引。
    Public Function IndexOf ( value As Char, startIndex As Integer ) As Integer 返回此字符串中指定的Unicode字符第一次出现的从零开始的索引,从指定的字符位置开始搜索。
    Public Function IndexOf ( value As String, startIndex As Integer ) As Integer 返回指定字符串在此实例中第一次出现的从零开始的索引,从指定的字符位置开始搜索。
    Public Function IndexOfAny ( anyOf As Char() ) As Integer 返回指定的Unicode字符数组中任何字符在此实例中第一次出现的从零开始的索引。
    Public Function IndexOfAny ( anyOf As Char(), startIndex As Integer ) As Integer 返回指定的Unicode字符数组中任何字符在此实例中第一次出现的从零开始的索引,从指定的字符位置开始搜索。
    Public Function Insert ( startIndex As Integer, value As String ) As String 返回一个新字符串,其中指定的字符串插入到当前字符串对象的指定索引位置。
    Public Shared Function IsNullOrEmpty ( value As String ) As Boolean 指示指定的字符串是空字符串还是空字符串。
    Public Shared Function Join ( separator As String, ParamArray value As String() ) As String 连接字符串数组的所有元素,并在每个元素之间使用指定的分隔符。
    Public Shared Function Join ( separator As String, value As String(), startIndex As Integer, count As Integer ) As String 连接字符串数组的指定元素,并在每个元素之间使用指定的分隔符。
    Public Function LastIndexOf ( value As Char ) As Integer 返回指定的Unicode字符在当前字符串对象中最后一次出现的从零开始的索引位置。
    Public Function LastIndexOf ( value As String ) As Integer 返回指定字符串在当前字符串对象中最后一次出现的从零开始的索引位置。
    Public Function Remove ( startIndex As Integer ) As String 删除当前实例中的所有字符,从指定位置开始,一直到最后一个位置,并返回字符串。
    Public Function Remove ( startIndex As Integer, count As Integer ) As String 移除当前字符串中从指定位置开始的指定数目的字符,并返回该字符串。
    Public Function Replace ( oldChar As Char, newChar As Char ) As String 将当前字符串对象中出现的所有指定的Unicode字符替换为指定的Unicode字符,并返回新的字符串。
    Public Function Replace ( oldValue As String, newValue As String ) As String 将当前字符串对象中出现的指定字符串替换为指定字符串并返回新的字符串。
    Public Function Split ( ParamArray separator As Char() ) As String() 返回一个字符串数组,该数组包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。
    Public Function Split ( separator As Char(), count As Integer ) As String() 返回一个字符串数组,该数组包含当前字符串对象中的子字符串,由指定的Unicode字符数组的元素分隔。int参数指定要返回的子字符串的最大数目。
    Public Function StartsWith ( value As String ) As Boolean 确定此字符串实例的开头是否与指定的字符串匹配。
    Public Function ToCharArray As Char() 返回包含当前字符串对象中的所有字符的Unicode字符数组。
    Public Function ToCharArray ( startIndex As Integer, length As Integer ) As Char() 返回包含当前字符串对象中的所有字符的Unicode字符数组,从指定的索引开始,直到指定的长度。
    Public Function ToLower As String 返回转换为小写的字符串的副本。
    Public Function ToUpper As String 返回转换成大写的字符串的副本。
    Public Function Trim As 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