2013-07-04 355 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 
相关问题