VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • VB.NET学习笔记:数据类型——System.String类(字符串)

光标定位到想获取帮助的关键词后按F1获取帮助,你会了吗?如图所示:
帮助
从帮助页面里可以看到,在.NET Framework中字符串对应的类型是System.String类。
在这里插入图片描述
点击进入System.String类的帮助页面。
字符串(System.String类)是 Unicode 字符的有序集合,用于表示文本,即一系列 Unicode 字符。是基本类型中唯一的引用类型。
System.String类不同于旧的VB6.0,System.String类使用方法而不是函数来处理字符串。当然,为了兼容老版本的VB6.0,还是可以用函数来处理字符串的,不过这些函数并不包含在System.String类,而是Microsoft.VisualBasic.Strings 类中。据说C#是不使用Microsoft.VisualBasic.Strings类的,所以为了兼容其他编程语言,建议尽量使用System.String类处理字符串。
一、构造函数——实例化字符串对象
System.String类有多个不同的构造函数,能够实现给字符串简单赋值以外的功能。如图:
构造函数
1、默认构造函数
String()是默认的构造函数,但String类并没有显式的提供这个构造函数。创建字符串实例最常用的方法是直接将一个字符串赋给String变量。如:

dim str as string = "Hello World"
  • 1

2、其他构造函数 如String(Char, Int32)构造函数可以将 String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。

Dim str As String = New String("A"c, 10)
  • 1

二、String方法 String类提供用于比较字符串,测试字符串是否相等,查找字符或字符串,修改字符串,提取字符串的组合字符串,格式化值等方法。 1、比较字符串 您可以通过使用以下String方法比较字符串来确定二者在排序顺序中的相对位置: Compare 返回一个整数,指示一个字符串在排序顺序中第二个字符串的关系。 CompareOrdinal 返回一个整数,指示一个根据其码位比较的第二个字符串的字符串的关系。 CompareTo 返回一个整数,指示当前的字符串实例与第二个字符串在排序顺序中的关系。 CompareTo(String)方法提供IComparable并IComparable实现String类。 复制粘贴帮助内容,做记号,没亲测。 2、测试字符串相等 在调用Equals方法来确定两个字符串是否相等。 实例Equals(String, String, StringComparison)和静态Equals(String, StringComparison)重载允许您指定比较是否区分区域性的或序号,以及是否考虑或忽略大小写。 为确定相等性的大多数测试是序号,并确定为系统资源 (如文件系统对象) 的访问权限为确定相等性比较应始终为序号。 3、查找字符串中的字符 String类包括两种类型的搜索方法: 返回的方法Boolean值,以指示特定的子字符串中是否存在字符串实例。 其中包括Contains, EndsWith,和StartsWith方法。 指示子字符串的字符串实例中的起始位置的方法。 其中包括IndexOf, IndexOfAny, LastIndexOf,和LastIndexOfAny方法。 4、修改字符串 (1)、Insert 将字符串插入到当前String实例。 Insert (int startIndex, string value) 参数:startIndex:Int32,插入的从零开始的索引位置;value:String,要插入的字符串。 返回:String,与此实例等效的一个新字符串,但在该字符串的 startIndex 位置处插入了 value。 如:

        Dim str As String = "Hello World"
        Dim strInsert As String = str.Insert(5, " Hi")
  • 1
  • 2

(2)、PadLeft 返回一个指定长度的新字符串,其中在当前字符串的开头填充空格或指定的 Unicode 字符。 PadLeft(Int32) 返回一个新字符串,该字符串通过在此实例中的字符左侧填充空格来达到指定的总长度,从而实现右对齐。 PadLeft(Int32, Char) 返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐。 如:

        Dim str As String = "Hello World"
        Dim strPadLeft1 As String = str.PadLeft(20) '用空格填充左部
        Dim strPadLeft2 As String = str.PadLeft(20, "*") '用*号填充左部
  • 1
  • 2
  • 3

效果如图: 在这里插入图片描述 (3)、PadRight 返回一个指定长度的新字符串,其中在当前字符串的结尾填充空格或指定的 Unicode 字符。 与PadLeft用法相似。 (4)、Remove 返回一个新字符串,它相当于从当前字符串删除了指定数量的字符。 Remove(startIndex) 删除此字符串中从指定位置到最后位置的所有字符。 参数:startIndex——System .Int32 ,开始删除字符的从零开始的位置。 返回值:System .String ——一个新字符串,除所删除的字符之外,该字符串与此字符串等效。 Remove(startIndex, count) 从此实例中的指定位置开始删除指定数目的字符。 参数:startIndex—— System .Int32 ,开始删除字符的从零开始的位置;count—— System .Int32 ,要删除的字符数。 返回值:System .String ,一个新字符串,除所删除的字符之外,该字符串与此实例等效。 如:

        Dim str As String = "Hello World"
        Dim strRemove1 As String = str.Remove(6) '删除第7至末字符
        Dim strRemove2 As String = str.Remove(0, 6) '删除第1-7字符
  • 1
  • 2
  • 3

效果如图: 在这里插入图片描述 (5)、Replace 返回一个新字符串,其中当前字符串中出现的所有指定 Unicode 字符或 String 都替换为另一个指定的 Unicode 字符或 String。 Replace(oldChar, newChar) 参数:oldChar—— System .Char ,要被替换的 Unicode 字符;newChar——System .Char ,要替换出现的所有 oldChar 的 Unicode 字符。 返回值:System .String ——与此实例等效的一个字符串,但其中 oldChar 的所有实例都替换为 newChar。 Replace(oldValue, newValue) 参数:oldValue——System .String,要被替换的字符串;newValue——System .String,要替换出现的所有 oldValue 的字符串。 返回值:System .String,与当前字符串等效的一个字符串,但其中 oldValue 的所有实例都替换为 newValue。 如:

        Dim str As String = "Hello World"
        Dim strReplace1 As String = str.Replace(" "c, ","c)
        Dim strReplace2 As String = str.Replace("Hello", "World")
  • 1
  • 2
  • 3

效果如图: 在这里插入图片描述 (6)、ToLower 和ToUpper 如:

        Dim str As String = "Hello World"
        Dim strToUpper As String = str.ToUpper '全部大写
        Dim strToLower As String = str.ToLower '全部小写
  • 1
  • 2
  • 3

效果如图: 在这里插入图片描述 (7)、Trim 、TrimEnd和TrimStart Trim 开始位置和字符串的末尾移除所有空白字符。 TrimEnd 删除字符串的末尾出现的所有字符。 TrimStart 从字符串的开头移除所有空白字符。 如:

        Dim str As String = " Hello World "
        Dim strTrim As String = str.Trim
        Dim strTrimEnd As String = str.TrimEnd
        Dim strTrimStart As String = str.TrimStart
  • 1
  • 2
  • 3
  • 4

效果如图: 在这里插入图片描述 5、从字符串中提取子字符串 (1)、Split(separator) 如:

        Dim str As String = "A,B,C,D"
        Dim strSplit() As String = str.Split(",")
  • 1
  • 2

参数:separator—— System .Char (),分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或 Nothing。 返回: System .String (),一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。 (2)、SubString Substring(startIndex) 参数:startIndex——System .Int32 ,此实例中子字符串的起始字符位置(从零开始)。 返回值:System .String ,与此实例中在 startIndex 处开头的子字符串等效的一个字符串;如果 startIndex 等于此实例的长度,则为 Empty。 Substring(startIndex, length) 参数:startIndex—— System .Int32 ,此实例中子字符串的起始字符位置(从零开始);length——System .Int32 ,子字符串中的字符数。 返回值:System .String ,与此实例中在 startIndex 处开头、长度为 length 的子字符串等效的一个字符串,如果 startIndex 等于此实例的长度且 length 为零,则为 Empty。 如:

        Dim str As String = "Hello World"
        Dim strSubstring1 As String = str.Substring(4)
        Dim strSubstring2 As String = str.Substring(0, 4)
  • 1
  • 2
  • 3

效果如图: 在这里插入图片描述 6、串联字符串 (1)、使用运算符& 前面一直在用这个运算符,不再多说。 (2)、Join 方法 String .Join (separator,value) 参数:separator—— System .String,要用作分隔符的字符串;value——System .String (),一个数组,其中包含要连接的元素。 返回值:System .String,一个由 value 中的元素组成的字符串,这些元素以 separator 字符串分隔。 如:

Dim str() As String = {"a", "b", "c"}
        Dim a As String = String.Join(",", str)
        Console.WriteLine(a)
  • 1
  • 2
  • 3

测试效果: 在这里插入图片描述 三、String .Length 属性 属性值:System .Int32 ,当前字符串中字符的数量。 如:

Module Module1
    Sub Main()
        Dim str As String = "Hello World"
        Dim int As Integer = str.Length
        MessageBox.Show(int.ToString)
    End Sub
End Module
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果如图: 在这里插入图片描述 四、String类不可变和 StringBuilder 类 String类被定义为不可变的类,若对字符串进行改变或复制时,系统将分配新的内存空间来存储(原空间被回收机制回收),操作时间长。 如:

Module Module1
    Sub Main()
        Dim strA As String = "Hello World"
        Dim strB As String = ""
        Dim start As Date = Now()
        For i As Integer = 1 To 10000
            strB &= strA
        Next
        MessageBox.Show(Now().Subtract(start).TotalMilliseconds.ToString)
    End Sub
End Module
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

操作时间如图: 在这里插入图片描述 可以用.net库中的System.Text.StringBuilder类,它先分配一个较小的内存,当无法容纳时,再扩大这个内存,操作时间短。 如:

Module Module1
    Sub Main()
        Dim sb As New System.Text.StringBuilder("Hello World")
        Dim start As Date = Now()
        For i As Integer = 1 To 10000
            sb.Append("Hello World")
        Next
        MessageBox.Show(Now().Subtract(start).TotalMilliseconds.ToString)
    End Sub
End Module
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

操作时间如图: 在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zyjq52uys/article/details/86006864


相关教程