VB.NET 子字符串方法示例

⚡ 智能摘要

VB.Net 子字符串示例trac通过指定起始索引和可选的长度,截取字符串的一部分。该方法属于 String 类,从零开始计数字符,并返回一个全新的字符串,而不会修改原始字符串。

  • 🔢 零基指数: Substring 方法从索引 0 开始计算字符,因此字符串的第一个字母位于位置 0。
  • ☑️ 两个过载: 传递一个参数将返回从该索引开始的所有内容,而传递两个参数将返回固定数量的字符。
  • ✂️ Extrac按位置: 将 Substring 与 IndexOf 或 LastIndexOf 结合使用,可以捕获特定字符之前或之后的文本。
  • ⚠️ 安全索引: 负数或超出范围的索引会引发 ArgumentOutOfRangeException 异常,因此在调用该方法之前请验证值。
  • 🔤 结果不可更改: Substring 返回一个新的字符串,而源字符串保持不变,这与 .NET 字符串的不可变性相符。
  • 🤖 人工智能辅助: GitHub Copilot 和 IntelliCode Visual Studio 2026 会在您键入时提示正确的 Substring 调用并标记超出范围的索引。

VB.Net 子字符串

什么是子串?

Substring 函数用于获取指定字符串的一部分。此方法定义在 String 类中。 Microsoft VB.Net您必须指定字符串的起始索引。tracted。字符串将是 extrac从该索引开始,一直到你指定的长度。

前trac要理解 Substring 方法所需的语法,对处理文本很有帮助。

子字符串的语法

该函数接受两个参数,如以下语法所示:

Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String

在这里,

  • ByVal 关键字表示按值传递,这是一种将参数传递给函数的机制。
  • start_Index 是要从中获取子字符串的索引。
  • sub_length 表示字符串从 start_Index 开始复制的长度范围。该长度以字符数衡量。该函数将返回 extracted 子字符串。

起始索引从零开始,因此字符串的第一个字符位于位置 0 而不是位置 1。

语法定义完毕后,以下示例展示了 Substring 方法在控制台应用程序中的实际应用。

例子

步骤 1)创建一个新的控制台应用程序。

步骤 2)向其中添加以下代码:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(0, 4)

        Console.WriteLine("The substring is: {0}", subst)

        Console.ReadKey()
    End Sub

End Module

步骤 3)点击工具栏中的“开始”按钮执行代码。您应该会看到以下结果:

VB.Net 子字符串示例输出

我们使用了以下代码:

VB.Net 子字符串代码示例

的解释 Code:

  1. 创建一个名为 Module1 的模块。
  2. 启动主要子程序。
  3. 定义一个名为 st 的字符串变量并赋值 Guru99 到它。
  4. 定义一个名为“subst”的字符串变量,作为字符串“st”从索引0开始、长度为4个字符的子字符串。
  5. 在控制台上打印一些文本和上述子字符串。
  6. 暂停控制台窗口一段时间,等待用户采取行动将其关闭。
  7. 主要子程序结束。
  8. 模块结束。

一个论点

如果我们只向函数传递一个参数会怎么样?该函数将复制从该索引开始的字符串中的所有数据。Substring 函数内部会复制该索引处的所有字符串数据以及该索引之后的数据。例如:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(4)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

单击“开始”按钮运行代码。它应返回以下内容:

VB.Net 子字符串函数,带一个参数

Substring 函数返回了 99。我们向该函数传递了参数 4,这意味着它将开始执行tract 是从字符串索引 4 处的字符到字符串末尾的子字符串。9 是字符串中索引 4 处的字符。 Guru99,因此是extrac变革就此开始。

除了从单个索引开始截取之外,Substring 方法还可以针对字符串中间的字符。

中间字符

我们也可以获取相关字符串的中间字符。在这种情况下,我们只需提供所需字符串的起始索引和长度。在以下示例中,我们从索引 2 获取指定字符串的子字符串,该字符串的长度为 2 个字符:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(2, 2)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

点击工具栏上的“开始”按钮运行代码。您将获得以下结果:

VB.Net 截取字符串中间字符

在上面的例子中,Substring 函数返回了 ru。我们向该函数传递了参数 (2, 2)。第一个 2 指示函数开始执行。trac从索引 2 开始提取子字符串,而第二个 2 指示函数仅返回长度为 2 个字符的子字符串。这意味着 extrac子字符串的提取应从字符串索引为 2 的元素开始。 Guru99,即 r。由于返回的子字符串长度应仅为 2 个字符,因此 extraction 不会越过 'u',因此返回了 'ru'。

一个字符

我们可以使用 Substring 函数从字符串中获取单个字符。在这种情况下,您需要进行分配,但可以直接访问该字符。这样速度会快一点。以下示例演示了我们可以实现此目的的两种方法:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim mid1 As Char = st(1)
        Console.WriteLine(mid1)

        Dim mid2 As String = st.Substring(1, 1)

        Console.WriteLine(mid2)

        Console.ReadKey()

    End Sub

End Module

点击“开始”按钮运行代码,你将得到以下结果:

VB.Net 子字符串单字符输出

我们使用了以下代码:

VB.Net 子字符串单字符代码

的解释 Code:

  1. 创建一个名为 Module1 的模块。
  2. 启动主要子程序。
  3. 定义一个名为 st 的字符串变量并赋值 Guru99 到它。
  4. 定义一个名为 mid1 的字符串变量,并获取字符串 st 中索引 1 处的字符。该字符将被分配给变量 mid1。
  5. 在控制台上打印上述字符。
  6. 定义一个名为 mid2 的字符串变量,并从字符串 st 中获取索引为 1 且长度为 1 的字符。长度为 1 表示它将返回起始索引处的相同字符。计数从您指定的起始索引开始。该字符将分配给变量 mid2。
  7. 在控制台上打印上述字符。
  8. 暂停控制台窗口一段时间,等待用户采取行动将其关闭。
  9. 主要子程序结束。
  10. 模块结束。

一旦你感到舒适,例如trac对于 ting 子字符串,了解如何处理该方法可能引发的错误是值得的。

常见的子字符串错误以及如何避免它们

Substring 方法对传入的值有严格的限制。当参数超出字符串的范围时,VB.Net 会抛出 ArgumentOutOfRangeException 异常,并在运行时终止程序。了解这些规则有助于避免这种常见的错误。

该方法在以下三种情况下会引发异常:

  • start_Index 为负数。
  • start_Index 大于字符串的长度。
  • start_Index 和 sub_length 之和超出字符串末尾的点数。

一个常见的错误是直接使用 IndexOf 函数的结果而不先进行检查。当 IndexOf 找不到字符时,它会返回 -1,而将 -1 传递给 Substring 函数会触发异常。以下代码可以避免这种情况:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"
        Dim pos As Integer = st.IndexOf("9")

        If pos >= 0 Then
            Dim subst As String = st.Substring(pos)
            Console.WriteLine(subst)
        Else
            Console.WriteLine("Character not found")
        End If

        Console.ReadKey()
    End Sub

End Module

在调用之前验证索引可以确保应用程序流畅运行,即使输入字符串不包含您期望的字符。

获取字符之前或之后的子字符串

一项常见的任务是 extrac提取特定字符前后出现的文本,例如在 @ 符号处分割电子邮件地址。VB.Net 没有提供专门的函数来实现此功能,但您可以将 IndexOf 和 Substring 结合使用来实现。

字符前的文本: 调用 IndexOf 函数定位字符,然后将该索引作为长度传递给 Substring 函数:

Module Module1
    Sub Main()

        Dim email As String = "guru99@example.com"
        Dim position As Integer = email.IndexOf("@")

        Dim namePart As String = email.Substring(0, position)
        Console.WriteLine(namePart)

        Console.ReadKey()
    End Sub

End Module

代码会打印 guru99,即字符串中 @ 符号之前的部分。

字符后的文本: 将索引加 1,让子字符串函数运行到字符串末尾:

Dim domainPart As String = email.Substring(position + 1)
Console.WriteLine(domainPart)

这将返回 example.com。当一个字符出现多次时,请使用 LastIndexOf 代替 IndexOf,以便从最后一次出现的位置开始,而不是从第一次出现的位置开始。

子串与左、右、中函数

Visual Basic 从早期版本继承了三个字符串函数:Left、Right 和 Mid。它们位于 Microsoft.VisualBasic 命名空间对于来自经典 VB 的开发人员来说会感觉更加熟悉。

  • Left(string, n) 返回字符串的前 n 个字符。
  • 右(字符串,n) 返回字符串的最后 n 个字符。
  • 中间(字符串,起始位置,长度) 返回从起始位置开始的一部分,与 Substring 函数非常相似。

主要区别在于它们计数方式的不同。`Mid` 函数从 1 开始计数,因此第一个字符位于位置 1;而 `Substring` 方法从 0 开始计数。`Substring` 是标准的 .NET 方法,在所有 .NET 语言中行为都相同,因此是新代码的推荐选择。`Left`、`Right` 和 `Mid` 函数则用于维护旧的 Visual Basic 项目。

常见问题

是的。Substring 方法的索引是从零开始的,所以字符串的第一个字符位于索引 0,第二个字符位于索引 1,依此类推。从零开始计数在计算起始位置时非常重要。

不。VB.Net 中的字符串是不可变的,因此 Substring 方法永远不会改变原始字符串。它返回一个包含新字符串的全新字符串。tracted 字符,而源字符串保持其原始值不变。

子字符串示例trac使用索引和长度提取字符串的连续部分。 分裂 将字符串拆分成若干个较小的字符串数组,拆分依据是分隔符(例如逗号或空格)。列表请使用 Split 函数,切片请使用 Substring 函数。

传递长度为 0 时,返回一个空字符串(“”),而不是 Nothing。只要起始索引仍在字符串的范围内,此调用就是有效的,不会引发异常。

`substring` 方法保留您指定的字符串部分,并丢弃其余部分。`remove` 方法则相反:它删除从给定索引开始的字符,并返回剩余的字符串。它们是互补的操作。

是的。在 Substring 方法计算起始索引和长度时,空格、制表符和标点符号都算作一个字符。字符串中的每个位置,包括空白字符,都计入字符数,而不仅仅是可见的字母。

是的。 GitHub 副驾驶 在 Visual Studio 2026 中,纯英文注释(例如 ex)会被转换为文本。trac将逗号前的文本提取出来,然后使用 `IndexOf` 函数调用 `Substring` 函数。务必检查生成的索引,确保它们在范围内。

是的。Visual Studio 2026 将 GitHub Copilot 与 智商Code 在您键入时,请使用 help 命令标记可能超出范围的索引、建议正确的参数并完成 Substring 调用。ping 在运行程序之前,您需要阻止 ArgumentOutOfRangeException 异常。

总结一下这篇文章: