Scinde une chaîne de tableau, supprimer les espaces vides
J'ai une question a propos du fractionnement de la chaîne. Je veux scinde une chaîne, mais quand dans la chaîne de voir les caractères "" ensuite, ne pas se déchirer et de supprimer les espaces vides.
Ma Chaîne:
String tmp = "abc 123 \"Edk k3\" String;";
Résultat:
1: abc
2: 123
3: Edkk3 //don't split after "" and remove empty spaces
4: String
Mon code pour le résultat, mais je ne sais pas comment faire pour supprimer les espaces vides dans les ""
var tmpList = tmp.Split(new[] { '"' }).SelectMany((s, i) =>
{
if (i % 2 == 1) return new[] { s };
return s.Split(new[] { ' ', ';' }, StringSplitOptions.RemoveEmptyEntries);
}).ToList();
Ou mais cela ne veut pas voir "", donc il divise tout
string[] tmpList = tmp.Split(new Char[] { ' ', ';', '\"', ',' }, StringSplitOptions.RemoveEmptyEntries);
OriginalL'auteur Le Viet Hung | 2012-11-30
Vous devez vous connecter pour publier un commentaire.
Ajouter .Replace(" ","")
OriginalL'auteur SergeyS
string.Split
n'est pas adapté pour ce que vous voulez faire, que vous ne pouvez pas dire de l'ignorer ce qui est dans le"
.Je n'irais pas avec
Regex
soit, car cela peut devenir complexe et gourmande en mémoire (pour les longues chaînes de caractères).Mettre en place votre propre par l'analyseur à l'aide d'une machine d'état à suivre si vous êtes à l'intérieur d'une cité de la partie.
OriginalL'auteur Oded
Vous pouvez utiliser une expression régulière. Au lieu de la division, de spécifier ce que vous souhaitez conserver.
Exemple:
De sortie:
OriginalL'auteur Guffa