2010-02-18 6 views
1

Comment puis-je diviser une chaîne « 99 Stack Overflow » dans 2 vb.netChaîne Split en VB.net

Je veux la première valeur à 99 et 2 pour être débordement de la pile.

S'il vous plaît aider

+2

Vous ne savez pas si vous voulez séparer des valeurs numériques d'une chaîne, ou simplement diviser sur le premier espace ou quoi? – hawbsl

Répondre

4

Cela devrait le faire:

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

More here. (je pense qui est la façon dont vous écrivez un tableau Char littéral dans VB.Net, je ne suis pas beaucoup de VB. Net mec, la plupart de ce que je fais dans .Net est en C#

Si je me trompe sur la façon dont vous avez raison des tableaux littéraux char et vous ne pouvez pas le comprendre, vous pouvez utiliser une version qui prend un Chaîne à la place:

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

Détails sur celui-ci here.

+1

Bonne suggestion, mais il faudrait Split ("" c, 2), pour utiliser le caractère littéral. Il existe deux surcharges qui utilisent un littéral de chaîne, mais aucune ne correspond à cette signature. –

+0

@jmgant: Dans C# vous auriez besoin du c après le "" pour un littéral de caractère, dans vb.net ce que T.J. posté serait acceptable, pas sûr de la deuxième partie cependant. –

+1

@Jeff, vous l'avez fait à l'envers (sorta). En C# ce serait «pour char» et «pour chaîne». VB utilise "" pour les chaînes littérales et "" c pour les littéraux char. –

2

En supposant que vous voulez dire des nombres, puis un espace, puis plus de texte, vous pouvez utiliser une expression régulière pour le faire.

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 

Si vous voulez dire que le texte, un espace, et plus de texte, regex est surpuissant et T.J. La suggestion de Crowder est meilleure.

+0

Personnellement, je préfère la regex car elle garantit que même si le texte change, seule la correspondance sera renvoyée. –