Visual Basic 字符串
在 VB 中,可以使用字符串作为字符数组,但更常见的做法是使用 String 关键字来声明一个字符串变量。String 关键字是 System.String 类的别名。
创建一个字符串对象
可以使用以下方法之一创建字符串对象:
- 通过将一个字符串文字分配给一个
String - 变量通过使用一个
String类的构造函数 - 通过使用字符串连接运算符 (+)
- 通过检索一个属性或调用返回一个字符串的方法
- 通过调用格式化方法将值或对象转换为其字符串表示形式
下面的实例演示了如何创建对象:
Module stringsSub Main()Dim fname, lname, fullname, greetings As Stringfname = "Rowan"lname = "Atkinson"fullname = fname + " " + lnameConsole.WriteLine("Full Name: {0}", fullname)'by using string constructorDim letters As Char() = {"H", "e", "l", "l", "o"}greetings = New String(letters)Console.WriteLine("Greetings: {0}", greetings)'methods returning StringDim sarray() As String = {"Hello", "From", "Tutorials", "Point"}Dim message As String = String.Join(" ", sarray)Console.WriteLine("Message: {0}", message)'formatting method to convert a valueDim 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 SubEnd Module
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 | 比较两个指定的字符串对象,并返回一个整数,按顺序指定它们的相对位置。但是,如果 ignoreCase 参数为 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 字符的位置索引,从 0 开始。 |
| 14 | Public Function IndexOf ( value As String ) As Integer | 返回此实例中第一次出现指定字符串的位置索引,从 0 开始计算。 |
| 15 | Public Function IndexOf ( value As Char, startIndex As Integer ) As Integer | 返回此字符串中第一个出现的指定 Unicode 字符的位置索引(从 0 开始),从指定的字符位置开始搜索。 |
| 16 | Public Function IndexOf ( value As String, startIndex As Integer ) As Integer | 返回此实例中指定字符串的第一个匹配项的位置索引(从 0 开始),从指定的字符位置开始搜索。 |
| 17 | Public Function IndexOfAny ( anyOf As Char() ) As Integer | 返回指定的 Unicode 字符数组中任何字符的第一次出现的位置索引,从 0 开始。 |
| 18 | Public Function IndexOfAny ( anyOf As Char(), startIndex As Integer ) As Integer | 返回指定 Unicode 字符数组中任何字符的此实例中第一次出现的位置索引(从 0 开始),从指定的字符位置开始搜索。 |
| 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 字符的索引位置,从 0 开始。 |
| 24 | Public Function LastIndexOf ( value As String ) As Integer | 返回当前字符串对象中最后一次出现的指定字符串的索引位置,从 0 开始。 |
| 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 字符进行拆分成字符串数组,并返回该数组。count 参数指定要返回的字符串数组的最大数量。 |
| 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 stringsSub Main()Dim str1, str2 As Stringstr1 = "This is test"str2 = "This is text"If (String.Compare(str1, str2) = 0) ThenConsole.WriteLine(str1 + " and " + str2 + " are equal.")ElseConsole.WriteLine(str1 + " and " + str2 + " are not equal.")End IfConsole.ReadLine()End SubEnd Module
结果如下:
This is test and This is text are not equal.
Module stringsSub Main()Dim str1 As Stringstr1 = "This is test"If (str1.Contains("test")) ThenConsole.WriteLine("The sequence 'test' was found.")End IfConsole.ReadLine()End SubEnd Module
结果如下:
The sequence 'test' was found.
Module stringsSub Main()Dim str As Stringstr = "Last night I dreamt of San Pedro"Console.WriteLine(str)Dim substr As String = str.Substring(23)Console.WriteLine(substr)Console.ReadLine()End SubEnd Module
结果如下:
Last night I dreamt of San Pedro San Pedro.
Module stringsSub 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 SubEnd Module
结果如下:
Down the way where the nights are gayAnd the sun shines daily on the mountain topI took a trip on a sailing shipAnd when I reached JamaicaI made a stop