2010-03-12 6 views
1

Disons que j'ai cette chaîne var:Éclate une chaîne var

string strData = "1|2|3|4||a|b|c|d" 

Ensuite, je fais un Split:

string[] strNumbers = strData.Split("||"); //something like this, I know It's not this simple 

je besoin de deux parties distinctes, chacune contenant ceci:

//strNumbers -> {"1","2","3","4"},{"a","b","c","d"} 

Donc, après cela, je pourrais faire ceci:

string[] strNumArray = strNumbers[0].Split('|'); 
//strNumArray -> '1', '2', '3', '4' 

Et même chose avec l'autre partie (lettres).

Est-ce possible? pour faire cette double division avec le même caractère, mais la première fois que le personnage est répété deux fois?

Merci.

PD. J'utilise C#.

Répondre

5

Cela fonctionnera bien, votre syntaxe est juste éteint.

Alors d'abord, vos déclarations sont désactivées. Vous voulez le [] sur le type, pas le nom. Deuxièmement, sur String.Split, il y a une surcharge qui prend un tableau de chaînes et un StringSplitOptions. J'essaie juste de faire "||" appellera la surcharge param char, qui est invalide.

Donc, essayez ceci:

string strData = "1|2|3|4||a|b|c|d"; 
string[] strNumbers = strData.Split(new[] {"||"}, StringSplitOptions.None); 
string[] strNumArray = strNumbers[0].Split('|'); 

Vous pouvez modifier les StringSplitOptions à RemoveEmptyEntries si vous vouliez.

+0

Oui, vous avez raison de mes erreurs de déclaration mais qui était seulement à cause de ma hâte de saisir la question. J'ai édité la question et corrigé les déclarations pour éviter les erreurs. – lidermin

+0

Vous aviez raison !! merci beaucoup, j'ai tout essayé mais: new [] {'||'} !! haha. Merci encore. – lidermin

-1
Dim s As String = "1|2|3|4|5|6|7||a|b|c|d|e|f" 
    Dim nums() As String = s.Split(New String() {"||"}, StringSplitOptions.None)(0).Split("|") 
    Dim strs() As String = s.Split(New String() {"||"}, StringSplitOptions.None)(1).Split("|") 
+0

Aucun de ces appels Split n'est compilable. '" || "' ne correspondra pas à la surcharge 'params char', et vous ne pouvez pas faire de String.Split en utilisant une chaîne sauf si vous en faites un tableau et que vous passez un StringSplitOption. – Brandon

+0

Merci! J'étais un peu distrait et je l'ai révisé, même si c'est VBNET. =) –

0

dans .NET 3.5:

string strData = "1|2|3|4||a|b|c|d"; 
var s1 = strData.Split(new string[] { "||" }, StringSplitOptions.None); 
var numbers = s1[0].Split('|'); 
var letters = s1[1].Split('|'); 
Questions connexes