2008-12-04 7 views
1

Supposons que vous ayez sortie comme ceci:.NET 2.0 - espace tokenizing texte séparé

Word1   Word2 Word3  Word4 

Lorsque le nombre d'espaces entre les mots est arbitraire. Je veux le décomposer en une série de mots.

J'ai utilisé le code suivant:

string[] tokens = 
     new List<String>(input.Split(' ')) 
      .FindAll 
      (
       delegate(string token) 
       { 
         return token != String.Empty; 
       } 
      ).ToArray(); 

Pas exactement efficace, mais fait le travail bien.

Comment le feriez-vous?

Répondre

18

Il mentionne déjà string.Split(). Ce qu'il manque est StringSplitOptions.RemoveEmptyEntries:

string[] tokens = input.Split(new char[] { ' ' }, 
    StringSplitOptions.RemoveEmptyEntries); 
+0

Génie. Je n'ai pas remarqué cette surcharge. – FlySwat

+0

+1 pour l'utilisation de ce qui existe déjà. – EBGreen

+0

Vous devez admettre, les délégués anonymes font paraître plus cool =) – FlySwat

1

J'utiliserais une regex pour le split avec "\ w +" pour le motif.

+0

Ensuite, j'aurais deux problèmes. – FlySwat

+0

:) - Donc deux fois plus de chances d'élargir vos capacités. – EBGreen

+0

En fait, j'avais le motif faux de toute façon ... D'OH! – EBGreen