题
我想读一个字符串,它看起来完全是这样的:
VPSProtocol=2.22
Status=OK
StatusDetail=0000 : The Authorisation was Successful.
VPSTxId={BBF09A43-913E-14E3-B41B-E5464B6FF8A9}
SecurityKey=EH8VFZUSH9
TxAuthNo=4979698
AVSCV2=SECURITY CODE MATCH ONLY
AddressResult=NOTMATCHED
PostCodeResult=NOTMATCHED
CV2Result=MATCHED
CAVV=AAABARR5kwAAAAAAAAAAAAAAAAA=
3DSecureStatus=OK
...成字典优选。我试过在vbcrlf分裂(有一个在每一行,我可以向你保证),并在“=”,但不能完全得到它的行为正确经常莫名界失误了。任何人有关于如何解决这一些新奇的想法?
帮助一如既往地理解。
解决方案
您可以使用 StringReader :
Dim dic = New Dictionary(Of String, String)
Using reader = New StringReader(someString)
Dim line As String = reader.ReadLine()
While line <> Nothing
Dim tokens = line.Split("=")
If tokens.Length < 2 Then
Continue While
End If
dic.Add(tokens(0), tokens(1))
line = reader.ReadLine()
End While
End Using
其他提示
我解决了这个与此相当恶劣的一段代码;
Dim dictionary As New Dictionary(Of String, String)
Dim x As String = "x?" & Replace(tmp.ToString(), vbCrLf, "&")
Dim arr As String() = x.Split("?".ToCharArray())
If arr.Length >= 2 Then
Dim arr2 As String() = arr(1).Split("&".ToCharArray())
For Each item As String In arr2
Dim arr3 As String() = item.Split("=".ToCharArray())
dictionary.Add(arr3(0), arr3(1))
Next
End If
我希望这可以帮助别人那里,如果任何人都可以提出改进建议,请做到:)
不隶属于 StackOverflow