最优雅的方法是在vb.net中用点分隔的字符串中获取2个变量

时间:2013-07-25 03:56:38

标签: vb.net string vb.net-2010

假设我有一个像

这样的字符串
   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个值吗?

3 个答案:

答案 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)})
相关问题