我正在尝试将看似空格字符的雅虎历史股票价格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
答案 0 :(得分:2)
你谈到的那些“空间”并不是真正的空间,它们是行回报。你可能用NotePad打开它,它显示为一个空格,因为它试图用错误的编码打开它,我猜想。
使用写字板或Excel打开它,您将看到该行返回。您需要拆分vbLf
才能使其正常工作:
Dim rows As String() = data.Split(vbLf)
答案 1 :(得分:1)
那些不是空格。它们是换行符。这将纠正它。
Dim rows As String() = data.Split(vbLf)