2013-07-25 36 views
0

假設我有一個像最優雅的方式來獲得字符串變量2斑點在vb.net中分離

Datos = "0000.0100.0200." 

我要像做閱讀字符串,當我得到.我知道有一個線二值在4個字符的字符串編碼所以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個字符的字符串得到2個值的另一種更優雅的方式?

回答

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 
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) 
+0

在字符串大小可變的情況下?我用split和for循環 – cMinor

+0

@cMinor - 在這種情況下,是的,你的方法很好;因爲我的警告不再是真的。 –

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)}) 
相關問題