Je veux simplement souligner la puissance de la méthode Split de C# et donner une comparaison plus détaillée, en particulier de la part de quelqu'un qui vient d'un milieu Java.
Alors que StringTokenizer en Java n'autorise qu'un seul délimiteur, nous pouvons en fait diviser sur plusieurs délimiteurs, ce qui rend les expressions régulières moins nécessaires (bien que si l'on a besoin de regex, il faut les utiliser à tout prix !) Prenez par exemple ceci :
str.Split(new char[] { ' ', '.', '?' })
Ceci divise sur trois délimiteurs différents en retournant un tableau de jetons. Nous pouvons également supprimer les tableaux vides avec ce qui serait un deuxième paramètre dans l'exemple ci-dessus :
str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries)
Une chose que le tokenizer de Java possède et qui manque à C# (au moins Java 7 possède cette fonctionnalité) est la possibilité de conserver le(s) délimiteur(s) en tant que tokens. Le Split de C# éliminera les tokens. Cela pourrait être important dans certaines applications NLP, par exemple, mais pour des applications plus générales, ce n'est peut-être pas un problème.
1 votes
Même question : stackoverflow.com/questions/1134311/