Exercice - Découvrir Split() et Join()
- 10 minutes
Vous poursuivez votre travail de développement pour une entreprise de logistique et commencez à créer une série de petites applications. Ces applications travaillent ensemble pour prendre les données du système d’un partenaire, les modifier, puis les transmettre à un système interne au format requis.
Pour effectuer la transformation des données, vous devez accepter les données entrantes sous forme de chaîne, les analyser en éléments de données plus petits, puis les manipuler pour qu’elles correspondent à un autre format requis. Comment pouvez-vous analyser les données de chaîne en éléments de données plus petits ?
Méthodes Array du type de données String
Les variables de type string comportent de nombreuses méthodes intégrées qui convertissent une chaîne unique en un tableau de chaînes plus petites, ou un tableau de caractères individuels.
Lorsque vous traitez les données d’autres systèmes informatiques, celles-ci sont parfois mises en forme ou encodées d’une manière qui ne répond pas à vos besoins. Dans ce cas, vous utilisez les méthodes de tableau du type de données string pour analyser une chaîne dans un tableau.
Utiliser ToCharArray() pour inverser un string
Supprimez ou utilisez l’opérateur de commentaire de ligne
//pour commenter tout le code des exercices précédents.Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string value = "abc123"; char[] valueArray = value.ToCharArray();
Dans cet exemple, la méthode ToCharArray() est utilisée pour créer un tableau de char, où chaque élément du tableau représente un caractère de la chaîne d’origine.
Inverser, puis combiner le tableau de caractères en une nouvelle chaîne
Ensuite, l’ordre des caractères dans le tableau est inversé, puis la méthode Write est utilisée pour les remettre ensemble dans une seule sortie.
Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);L’expression
new string(valueArray)crée une instance vide de la classeSystem.String(qui est identique au type de donnéesstringen C#) et passe le tableau de caractères en tant que constructeur.Notes
Qu’est-ce que le mot clé
new? Comment la classeSystem.Stringest-elle liée au type de donnéesstringen C# ? Qu’est-ce qu’un constructeur ? Ce sont toutes des questions intéressantes qui n’entrent malheureusement pas dans le cadre de ce module. Nous vous recommandons de continuer à vous familiariser avec la bibliothèque de classes .NET ainsi qu’avec les classes et les objets en C# pour bien comprendre ce qui se passe en arrière-plan avec cette expression de code. Pour l’instant, utilisez un moteur de recherche et la documentation Microsoft pour trouver des exemples que vous pouvez utiliser dans des situations telles que celles-ci où vous savez que vous souhaitez effectuer une conversion, mais ignorez comment procéder avec C#.Dans le menu Fichier de Visual Studio Code, sélectionnez Enregistrer.
Vous devez enregistrer le fichier Program.cs avant de générer ou d’exécuter le code.
Dans le panneau EXPLORATEUR, pour ouvrir un Terminal à l’emplacement de votre dossier TestProject, cliquez avec le bouton droit sur TestProject, puis sélectionnez Ouvrir dans le Terminal intégré.
Un panneau Terminal doit s’ouvrir et doit inclure une invite de commandes indiquant que le Terminal est ouvert à l’emplacement de votre dossier TestProject.
À l’invite de commandes Terminal, pour exécuter votre code, tapez dotnet run, puis appuyez sur Entrée.
Notes
Si vous voyez un message indiquant « Impossible de trouver un projet à exécuter », vérifiez que l’invite de commandes Terminal affiche l’emplacement attendu du dossier TestProject. Par exemple :
C:\Users\someuser\Desktop\csharpprojects\TestProject>Vous devez normalement voir la sortie suivante.
321cba
Combiner tous les caractères en une nouvelle chaîne de valeurs séparées par des virgules avec Join()
Dans certains cas, vous devrez peut-être séparer chaque élément du tableau de caractères à l’aide d’une virgule, pratique courante lorsque vous travaillez avec des données qui sont représentées sous forme de texte ASCII. Pour ce faire, vous commentez la ligne de code ajoutée à l’étape 2 et utilisez la méthode String de la classe Join(), en transmettant le caractère souhaité pour délimiter chaque segment (la virgule) et le tableau lui-même.
Mettez à jour votre code dans l’Éditeur Visual Studio Code comme suit :
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.
Vous devez normalement voir la sortie suivante.
3,2,1,c,b,a
Fractionner la chaîne de valeurs séparées par des virgules en tableau de chaînes avec Split()
Pour le code, la méthode Split() est utilisée. Cette méthode est conçue pour les variables de type string et crée un tableau de chaînes.
Utilisez l’éditeur Visual Studio Code pour ajouter les lignes de code suivantes au bas du fichier :
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Prenez le temps de passer le code précédent en revue.
La virgule est fournie à
.Split()comme délimiteur pour fractionner une longue chaîne en chaînes plus petites. Le code utilise ensuite une boucleforeachpour parcourir chaque élément du tableau de chaînes nouvellement créé,items.Vérifiez que votre code ressemble désormais à ce qui suit :
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Enregistrez votre fichier de code, puis utilisez Visual Studio Code pour exécuter votre code.
Quand vous exécutez le code, vous voyez la sortie suivante :
3,2,1,c,b,a 3 2 1 c b aLe tableau
itemscréé à l’aide destring[] items = result.Split(',');est utilisé dans la boucleforeach, et affiche les caractères individuels dustringd’origine contenus dans la variablevalue.
Récapitulatif
Voici quelques points clés à retenir quand vous utilisez des chaînes et des tableaux :
- Pour créer un tableau, utilisez des méthodes comme
ToCharArray()etSplit() - Pour retransformer le tableau en une seule chaîne, utilisez des méthodes comme
Join()ou créez une chaîne en passant un tableau dechar