如何在字符串VB.NET中查找某些字符的索引

时间:2015-12-31 09:25:36

标签: vb.net string

我是VB.net的初学者。

如何读取字符串中某些字符的索引?我读了一个条形码,我得到了这样的字符串:

3XXX123456-C-AA123456TY-667

从该代码中我应该读取字符“ - ”的索引,这样我可以在代码中稍后剪切字符串。

例如上面的代码:

3456-C
6TY-667

字符串的长度可以更改(+/- 3个字符)。连字符的位置和数量也可能不同。

所以,我正在寻找能够计算连字符数量和位置的代码。

提前致谢!

3 个答案:

答案 0 :(得分:1)

使用String.Splt方法。

    'a test string
    Dim BCstring As String = "3XXX123456-C-AA123456TY-667"

    'split the string, removing the hyphens
    Dim BCflds() As String = BCstring.Split({"-"c}, StringSplitOptions.None)

    'number of hyphens in the string
    Dim hyphCT As Integer = BCflds.Length - 1

    'look in the debuggers immediate window
    Debug.WriteLine(BCstring)
    'show each field 
    For Each s As String In BCflds
        Debug.WriteLine(String.Format("{0,5}  {1}", s.Length, s))
    Next

    'or
    Debug.WriteLine(BCstring)
    For idx As Integer = 0 To hyphCT
        Debug.WriteLine(String.Format("{0,5}  {1}", BCflds(idx).Length, BCflds(idx)))
    Next

答案 1 :(得分:1)

如果你需要的只是连字符之间的部分,那么dbasnett建议使用split方法进行字符串。如果您偶然需要知道连字符的索引位置,您可以使用第一个示例使用Lambda来获取位置,而这些位置反过来计数会给出字符串中有多少个连字符。

当第一次开始使用.NET时,最好先探索字符串和数字的各种类,因为有很多东西可能不会让人想到,这使得编码变得更容易。

Dim barCode As String = "3XXX123456-C-AA123456TY-667"
Dim items = barCode _
    .Select(Function(c, i) New With {.Character = c, .Index = i}) _
    .Where(Function(item) item.Character = "-"c) _
    .ToList

Dim hyphenCount As Integer = items.Count
Console.WriteLine("hyphen count is {0}", hyphenCount)
Console.WriteLine("Indices")
For Each item In items
    Console.WriteLine("   {0}", item.Index)
Next

Console.WriteLine()
Console.WriteLine("Using split")
Dim barCodeParts As String() = barCode.Split("-"c)
For Each code As String In barCodeParts
    Console.WriteLine(code)
Next

答案 2 :(得分:0)

以下是一个示例,它会拆分您的字符串,并允许您解析这些值。

<span>{{(number | digits : 2}}</span>