假设我有一个像
这样的字符串 Datos = "0000.0100.0200."
我想做一些像读取字符串的事情,当我得到.
时,我知道在4个char字符串中编码了两个值,所以对于0000.我会得到
Dim a = 00
Dim b = 00
然后是0100.我会得到
Dim a = 01
Dim b = 00
然后是0200.我会得到
Dim a = 02
Dim b = 00
我有
Dim Items() As String = Split(Datos, ".")
For Each oneItem As String In Items
If Not oneItem .Length < 4 Then
Dim a = oneItem (0) & oneItem (1)
Dim b = oneItem (2) & oneItem (3)
MsgBox(a)
MsgBox(b)
End If
Next
还有另一种更优雅的方式从vb.net中的4个char字符串中获取2个值吗?
答案 0 :(得分:1)
如果您的格式是xxxx.xxxx.xxxx
的固定长度,那么我会说使用Substring()
获取您需要的部分会更有效/优雅/可维护,如下所示:
Dim Datos As String = "0000.0100.0200."
Dim a As String = Datos.Substring(0,2)
Dim b As String = Datos.Substring(2,2)
Dim c As String = Datos.Substring(5,2)
Dim d As String = Datos.Substring(7,2)
Dim e As String = Datos.Substring(10,2)
Dim f As String = Datos.Substring(12,2)
答案 1 :(得分:1)
也许是这样..
Dim Items() As String = Split(Datos, ".")
For Each oneItem As String In Items
If oneItem.Length = 4 Then
Dim a = oneItem.Substring(0,2)
Dim b = oneItem.Substring(2,2)
MsgBox(a)
MsgBox(b)
End If
Next
答案 2 :(得分:1)
为什么不试试linq:
Dim expected = Datos.Split("."c).Where(Function(e) e.Length = 4) _
.SelectMany(Function(n) New String() {n.Substring(0, 2), n.Substring(2, 2)})