我是VB.net的初学者。
如何读取字符串中某些字符的索引?我读了一个条形码,我得到了这样的字符串:
3XXX123456-C-AA123456TY-667
从该代码中我应该读取字符“ - ”的索引,这样我可以在代码中稍后剪切字符串。
例如上面的代码:
3456-C
6TY-667
字符串的长度可以更改(+/- 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>