不能使用Split(“”c)vb.net拆分带空格字符的字符串

时间:2011-12-28 14:14:20

标签: vb.net

我正在尝试将看似空格字符的雅虎历史股票价格csv文件拆分成字符串。我希望每个拆分都有一个新行。 split函数适用于我在字符串中看到的其他字符。我怀疑角色可能是一个非破坏性的空间角色,但我无法分裂它们。

这是下载到字符串中的测试csv文件: http://ichart.finance.yahoo.com/table.csv?s=AAPL&c=2011

我正试图像这样拆分字符串:

Dim rows As String() = data.Split(" "c)

字符串的标题部分中有一个真正的空格字符,而不是我要分割的股票数据中的空白字符。如果这是一个不间断的空间,我该如何拆分呢?我怎么知道这个空白字符是什么?

字符串的示例如下所示:

"Date,Open,High,Low,Close,Volume,Adj Close 2011-12-27,69.24,72.18,69.01,71.55,1491000,71.55 2011-12-23,67.49,69.25,67.25,69.08,880300,69.08"

我试图在股票日期之前的空间拆分,例如“2011-12-23”。

这是我的功能:

Public Shared Function DownloadData(ByVal ticker As String, ByVal yearToStartFrom As Integer) As List(Of HistoricalStock)

Dim retval As New List(Of HistoricalStock)()

Using web As New WebClient()
Dim data As String = web.DownloadString(String.Format("http://ichart.finance.yahoo.com/table.csv?s={0}&c={1}", ticker, yearToStartFrom))

Dim rows As String() = data.Split(" "c)

Return retval
End Using
End Function

2 个答案:

答案 0 :(得分:2)

你谈到的那些“空间”并不是真正的空间,它们是行回报。你可能用NotePad打开它,它显示为一个空格,因为它试图用错误的编码打开它,我猜想。

使用写字板或Excel打开它,您将看到该行返回。您需要拆分vbLf才能使其正常工作:

Dim rows As String() = data.Split(vbLf)

答案 1 :(得分:1)

那些不是空格。它们是换行符。这将纠正它。

Dim rows As String() = data.Split(vbLf)