String 通过Startindex和Endindex获取字符串的子字符串

String 通过Startindex和Endindex获取字符串的子字符串,string,vb.net,String,Vb.net,我尝试将1,2,3作为字符串从字符串数据:[1,2,3]中提取出来。使用下面的代码执行此操作会给我错误索引和长度必须指字符串中的某个位置,看起来我完全失明,但我看不出有什么问题。有人能帮我吗 Sub Main() Dim name As String = "Data:[1,2,3]" Console.Write(name.Substring(6, name.Length - 1)) Console.Read() End Sub String.Substring中的第二个

我尝试将
1,2,3
作为字符串从字符串
数据:[1,2,3]
中提取出来。使用下面的代码执行此操作会给我错误索引和长度必须指字符串中的某个位置,看起来我完全失明,但我看不出有什么问题。有人能帮我吗

Sub Main()
    Dim name As String = "Data:[1,2,3]"
    Console.Write(name.Substring(6, name.Length - 1))
    Console.Read()
End Sub

String.Substring
中的第二个参数是长度,因此应该从第一个参数的索引中获取的字符数。您应该查找括号:

Dim startIndex = name.IndexOf("["c)
If startIndex >= 0 Then
    Dim endIndex = name.IndexOf("]"c, startIndex)
    If endIndex >= 0 Then
       startIndex += 1 ' because you dont want to include the  brackets
       Dim data = name.Substring(startIndex, endIndex - startIndex)
    End If
End If

您正在寻找
Console.Write(name.Substring(6,5))
。后一个数字是计数而不是index.Console.Write(Mid(name,6))谢谢这是我要找的,因为我需要在不同的字符串长度上使用它。好期待。