Vb.net 将字符串拆分为不同的数据类型

Vb.net 将字符串拆分为不同的数据类型,vb.net,Vb.net,如果我有一个字符串,例如: Bridport, Dorset, 12977, 425 有没有一种方法可以使用split函数,这样我就可以将前两部分声明为字符串,最后两部分声明为整数?您可以将其拆分为String(),然后使用Int32.Parse将最后两部分解析为整数 Dim tokens = text.Split(","c) Dim part1 As String = tokens(0).Trim() Dim part2 As String = tokens(1).Trim() Dim pa

如果我有一个字符串,例如:

Bridport, Dorset, 12977, 425

有没有一种方法可以使用split函数,这样我就可以将前两部分声明为字符串,最后两部分声明为整数?

您可以将其拆分为
String()
,然后使用
Int32.Parse
将最后两部分解析为整数

Dim tokens = text.Split(","c)
Dim part1 As String = tokens(0).Trim()
Dim part2 As String = tokens(1).Trim()
Dim part3 As Int32  = Int32.Parse(tokens(2).Trim())
Dim part4 As Int32  = Int32.Parse(tokens(3).Trim())
如果您不知道格式是否有效,可以使用此超级安全版本:

Dim part1 As String = tokens(0).Trim()
Dim part2 As String = tokens.ElementAtOrDefault(1)
If part2 IsNot Nothing Then part2 = part2.Trim()
Dim part3 As String = tokens.ElementAtOrDefault(2)
Dim part4 As String = tokens.ElementAtOrDefault(3)
Dim num1 As Int32? = New Nullable(Of Int32)
Dim num2 As Int32? = New Nullable(Of Int32)
If part3 IsNot Nothing Then
    Dim num As Int32
    If Int32.TryParse(part3.Trim(), num) Then
        num1 = num
    End If
End If
If part4 IsNot Nothing Then
    Dim num As Int32
    If Int32.TryParse(part4.Trim(), num) Then
        num2 = num
    End If
End If

我正在使用
Nullable(Of Integer)
来了解字符串是否可以成功解析为
Integer
。它具有
HasValue
Value
属性。如果
HasValue
返回
True

则使用后一种方法,在逗号上拆分将形成一个数组,然后创建变量,您可以从中转换类型。字符串的部分仍然是字符串,使用Convert或Cint我尝试过这样做,但它说输入格式不有效使用文本编辑器检查CSV文件-您可能使用Put和Get破坏了它,并希望保留CSV格式。是否有方法从第二次执行循环时开始循环中的语句?使用该方法,它仍然表示输入格式不是valid@Todd432:我已经编辑了我的答案以提供安全的方法。你真的应该使用。
Dim info as string = "Bridport,Dorset,12977,425"
Dim split as string() = info.split(",")
Dim string1 as string = split(0) ' Reads Bridport
Dim string2 as string = split(1) ' Reads Dorset
Dim int1 as integer = split(2) ' Reads 12977
Dim int2 as integer = split(3) ' Reads 425