2010-02-18 78 views
1

我如何在vb.net分割字符串在VB.net

分割字符串「99堆棧溢出」到2我希望第一個值是99和第2個是堆棧溢出。

請幫

+2

不清楚你是指你想要從字符串中分割數值,還是僅僅分割第一個空格或什麼? – hawbsl 2010-02-18 16:12:44

回答

4

這應做到:

result = yourstring.Split(new Char() { " "c}, 2) 

More here.(我認爲這就是你如何寫在VB.Net文字Char陣列;我沒有太大的VB的。網絡人,我在.Net中做的大部分是用C#。

如果我錯了你如何正確的文字字符數組,你不能弄明白,你可以使用它的一個版本,需要一個字符串代替:

result = yourstring.Split(" ", 2, StringSplitOptions.None) 

關於那個的詳情here

+1

很好的建議,但它需要被拆分(「」c,2),以使用字符字面值。有兩個使用字符串文字的重載,但都不匹配此簽名。 – 2010-02-18 16:23:34

+0

@jmgant:在c#中你需要c後面的「」作爲字符字面量,在vb.net中是T.J.張貼將是可以接受的,但不確定關於第二部分。 – 2010-02-18 16:37:29

+1

@Jeff,你得到了這個(sorta)。在C#中,它將是「'用於字符,而」「用於字符串。 VB使用「」字符串文字和「」c字符文字。 – 2010-02-18 16:41:51

2

假設你的意思是數字,那麼空格,然後是更多的文本,你可以使用正則表達式來做到這一點。

Dim input As String = "99 Stack Overflow" 
Dim re As New Regex("^(\d+) (.+)$") 
Dim m As Match = re.Match(input) 
Dim firstPart As String 
Dim secondPart As String 
If m.Success AndAlso m.Groups.Count = 3 Then 
    firstPart = m.Groups(1).ToString() 
    secondPart = m.Groups(2).ToString() 
Else 
    'Do something useful' 
End If 

如果你只是意味着文本,空間和更多的文本,正則表達式是矯枉過正和T.J.克羅德的建議更好。

+0

我個人推崇的正則表達式,因爲它確保即使文本更改只有匹配將被返回。 – 2011-05-18 14:19:43