2015-11-05 150 views
-1

Dim mystring as string = " myintref="567" Mynewref="345" "如何正确使用string.split

当转义双引号,我想,这样我结束了分裂,在每个单引号的myString;

myintref= 567 

Mynewref= 345 

无论

Dim splitstring as string() = mystring.Split(""") 

Dim splitstring as string() = mystring.Split(New Char {"""c}) 

出现工作。有什么建议么? (vs2015,vb.net v14)

+0

我认为VB用两个连续的双引号转义字符串字面双引号。如:“”这是一个“”引用“”字符串“' – David

+0

感谢您的编辑,但不是我想要的(我无法得到正确格式的问题)myintref =应该是一个分裂,567下一个等 –

+0

@大卫,如果你的意思是像mystring.split(“”“”“),那么我已经尝试过,它也不起作用 –

回答

0

你期待拆分该字符串后2个或4个元素?

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim strLine As String = " myintref=" & """" & "567" & """" & " Mynewref=" & """" & "345" & """" & " " 
    Debug.WriteLine("Original: " & strLine) 
    Dim strAry As String() = strLine.Split({""""c}) 
    For i As Int32 = 0 To strAry.Length - 1 
     Debug.WriteLine(strAry(i)) 
    Next 
End Sub 

给了我这样的输出:

Original: myintref="567" Mynewref="345" 
myintref= 
567 
Mynewref= 
345 
+0

完美..非常感谢你 –

+0

@DomSinclair与David –

+2

@DomSinclair完全一样:出于好奇,这个答案的结果与我的回答结果有什么不同?在这个代码中有更多的代码,但结果是一样的。我们都使用'String.Split()'并得到相同的结果数组。 – David

3

要在VB中转义双引号,只需使用两个连续的双引号字符。所以,你可以做这样的事情:

Dim mystring As String = " myintref=""567"" Mynewref=""345"" " 
Dim mystrings = mystring.Split(""""c) 

在分裂导致在双引号字符字符串:

Debugging screen shot

+0

谢谢大卫,但你误解了这个问题,我想结束myintref = NOT“myintr ef =“,其他人也一样。我想使用“作为拆分,这就是导致问题的原因 –

+3

@DomSinclair:我认为你误解了字符串,这些拆分字符串都不包含*双引号字符,它们是*封闭的*在双引号字符中,因为*它们是字符串*。 – David

+0

@DomSinclair正如David所建议的那样,显示的输出是正确的(当分割没有引号的字符串时,您会看到相同的引号,只定义开始/在任何情况下,似乎'Replace'对于执行你想要的动作来说更好。 – varocarbas