在Visual Basic中获取分隔符后的第n个字符,字符串或数字

时间:2016-07-01 21:18:58

标签: vb.net string

在VB.net(Visual Studio 2015)中,如何在逗号分隔列表中获取第n个字符串(或数字)?

说我有一个以逗号分隔的数字列表,如此:

13,1,6,7,2,12,9,3,5,11,4,8,10

我怎样才能获得第五名这个字符串中的值,在这种情况下是12?我已经查看了Split函数,但它将一个字符串转换为一个数组。我想我可以做到这一点,然后获得该数组的第5个元素,但这似乎很多只需要获得第5个元素。有没有更直接的方法来做到这一点,还是我几乎只限于拆分功能?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找更基本的替代方法,您可以尝试:

Module Module1

Sub Main()
    Dim a As String = "13,1,6,7,2,12,9,3,5,11,4,8,10"
    Dim counter As Integer = 5 'the number you want (in this case, 5th one)
    Dim movingcounter As Integer = 0 'how many times we have moved
    Dim startofnumber, endofnumber, i As Integer
    Dim numberthatIwant As String

    Do Until movingcounter = counter
        startofnumber = InStr(i + 1, a, ",")
        i = startofnumber
        movingcounter = movingcounter + 1
    Loop

    endofnumber = InStr(startofnumber + 1, a, ",")

    numberthatIwant = (Mid(a, startofnumber + 1, endofnumber - startofnumber - 1))
    Console.WriteLine("The number that I want: " + numberthatIwant)
    Console.ReadLine()
End Sub

End Module

编辑:如果你想在一个更大的程序中使用它,你可以把它变成一个过程或函数,但是这个在控制台模式下运行的代码会输出12。

答案 1 :(得分:0)

Plutonix提供的解决方案是对我的问题的评论很简单,正是我所寻找的,例如:

result = csv.Split(“,”c)(5)

在我的情况下,我每次运行程序时都会递增一个变量,并且需要在递增的值之后获取第n个字符或字符串。也就是说,如果我的程序将变量增加了5次,那么我需要第4个逗号之后的字符串,当然这是第5个字符串。所以我的解决方案是这样的:
result = WholeString.Split(“,”c)(IncrementedVariable)

请注意,这是一个从零开始的变量。

谢谢,Plutonix。