2013-07-04 361 views
2

我有一組string值,其中有enter鍵作爲中間的間隔並存儲在數據庫中。現在我必須使用split函數分割這些字符串值並將其保存在一個數組中。使用「Enter」鍵作爲分隔符來分割字符

//代碼

Dim valuesArray as String()= Field.ListOfValues.Split(?) 

我怎麼能這樣做?

回答

1

因爲在Windows中,線與兩個字符序列<CR><LF>終止,您需要一字符串,而不是字符拆分String.Split overload

Dim valuesArray = Field.ListOfValues.Split({vbCrLf}, StringSplitOptions.None) 
+0

哇!夏普。 – iamCR

0

試試這個:

回車鍵= CChar(vbCrLf)

//代碼

Dim valuesArray as String()= Field.ListOfValues.Split(CChar(vbCrLf)) 
+2

請把之前的數據看你使用這個 - 根據數據的來源,只有vbCr vbLf將被用作換行符。這取決於操作系統等。 –

+0

您可以隨時使用Environment.NewLine而不是vbCrLF – RobS

+1

請注意'CChar(vbCrLf)'產生與'CChar(vbCr)'相同的命令,即單個CR字符。這可能不是你想要的。 ([Source](http://msdn.microsoft.com/en-us/library/s2dy91zy(v = vs.110).aspx):'只有字符串的第一個字符被轉換] – Heinzi

3

的 「Enter」 鍵,你指的也可能會被任何一個回車,或換行或兩者。以下用途ReadLine所以這應該做你想做的,應在行尾字符佔方差

StreamReader.ReadLine方法

讀取字符從當前流線和返回數據爲字符串。

一行被定義爲一個字符序列,後跟一個換行符(「\ n」),一個回車符(「\ r」)或一個回車符後跟一個換行符(「\ n」 r \ n「個)。返回的字符串不包含終止回車或換行符。

Dim valuesList As New List(Of String) 

    Using sr As New StreamReader(New System.IO.MemoryStream(System.Text.Encoding.ASCII.GetBytes(Field.ListOfValues))) 
     Do Until sr.EndOfStream 
      valuesList.Add(sr.ReadLine) 
     Loop 
    End Using 

    'If you really want an array convert it to one here: 
    Dim valuesArray As String() = valuesList.ToArray 
相關問題