Exercice - Retourner des chaînes à partir de méthodes
Vous constaterez peut-être souvent que vous devez écrire une méthode qui retourne une chaîne. Par exemple, vous voudrez peut-être récupérer une chaîne à partir d’un jeu de données ou modifier une chaîne d’une manière ou d’une autre. Dans cet exercice, vous allez acquérir une certaine expérience de l’utilisation de chaînes dans des méthodes en répondant à une question souvent posée en entretien.
Créer une méthode qui retourne une chaîne
Supposez que vous passez un entretien technique. Le recruteur vous demande d’écrire une méthode pour inverser une chaîne sans utiliser string.Reverse. Prenez un moment pour réfléchir à la façon dont vous pouvez accomplir cette tâche.
Vous pensez probablement que vous pouvez inverser une chaîne en itérant à partir de la fin de la chaîne. Vous pouvez utiliser une chaîne temporaire pour stocker chaque lettre de la fin au début. C’est parti !
Dans l’Éditeur Visual Studio Code, supprimez tout code existant des exercices précédents.
Entrez le code suivant dans l’Éditeur :
string ReverseWord(string word) { string result = ""; return result; }La méthode doit itérer au sein du mot donné et mettre à jour le résultat. Pour ce faire, mettez à jour la méthode
ReverseWordavec le code suivant :string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Dans ce bloc de code, vous commencez à partir de la fin du mot avec
word.Length - 1. Vous soustrayez un de la longueur, car les index de tableau commencent à zéro et vous voulez éviter d’accéder à un élément hors limites. Ensuite, vous ajoutez la lettre au niveau de l’index actuel à la chaîneresultet déplacez l’index à l’arrière. Vous utilisezi >= 0puisqueiest mis à jour après l’exécution du code dans la boucle, et vous voulez être sûr d’inclure l’index zéro.
Tester votre code
Lorsque vous codez, il est important de vérifier fréquemment votre travail. La recherche et la correction des erreurs au début du processus de codage vous permettent de consacrer plus de temps à créer sur du code correct plutôt qu’à déboguer un programme long. La vérification fréquente du travail est une compétence que les recruteurs techniques apprécient beaucoup aussi.
Entrez une nouvelle ligne de code vide. Créez ensuite du texte input et appelez votre méthode en entrant le code suivant au-dessus de la méthode
ReverseWord:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Si nécessaire, ouvrez le volet Terminal intégré de Visual Studio Code.
À l’invite de commandes du terminal, entrez dotnet run. Comparez votre sortie avec ce qui suit :
snake ekansSi votre code affiche des résultats inattendus, vous devez le passer en revue afin de trouver votre erreur et d’effectuer des mises à jour. Réexécutez le code pour voir si vous avez résolu le problème. Continuez à mettre à jour et à exécuter votre code jusqu’à ce qu’il produise les résultats attendus.
Créer une méthode pour inverser les mots d’une phrase
Supposons que le recruteur vous pose une question complémentaire. Il vous demande d’inverser chaque mot dans une phrase donnée, en conservant la position d’origine de chaque mot. Vous pouvez supposer que chaque mot est séparé par un espace. Par exemple, « type de retour de chaîne » devient « epyt ed ruoter ed enîahc ». Prenez un moment pour réfléchir à la façon dont vous pouvez effectuer cette tâche.
Si vous utilisez la méthode que vous avez écrite dans la tâche précédente, vous vous rendrez probablement compte que vous pouvez utiliser la méthode pour inverser chaque mot de la chaîne individuellement. Vous pouvez créer une nouvelle phrase et ajouter chaque mot à mesure que celui-ci est inversé. C’est parti !
Créez une ligne de code vide à la fin du programme actuel. Entrez ensuite le code suivant pour créer une nouvelle méthode :
string ReverseSentence(string input) { string result = ""; return result; }Puis, vous pouvez extraire les mots individuels de la chaîne avec
string.Split. Mettez à jour la méthodeReverseSentencecomme suit :string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Maintenant que vous avez accès à chaque mot de la phrase, vous pouvez utiliser votre méthode
ReverseWordsur chaque mot et les stocker dansresult.Mettez à jour la méthode
ReverseSentencecomme suit :string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Notez comment vous pouvez appeler la méthode
ReverseWorddans un opérateur d’assignation composée. Dans ce code, la valeur de retour est capturée à partir deReverseWordet ajoutée àresult. Les méthodes avec des valeurs de retour peuvent être utilisées partout où vous en avez besoin, tant que le type de données répond aux conditions requises.Dans ce code, chaque mot inversé est ajouté au résultat avec un espace ajouté. Toutefois, cela laisse un espace superflu à la fin de la phrase inversée.
Vous pouvez supprimer l’espace superflu à la fin avec
string.Trim. Mettez à jour la méthode avec le code suivant :string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Prenez un moment pour examiner le résultat de retour de cette méthode. Une méthode peut utiliser d’autres méthodes tout au long de son exécution et même dans l’instruction return, tant que les types de données correspondent.
Vous êtes maintenant prêt à appeler votre méthode !
Mettez à jour le texte
inputet l’instructionConsole.WriteLinecomme suit :string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Vérifier votre travail
Dans cette tâche, vous allez exécuter votre application à partir du Terminal intégré et vérifier que votre code fonctionne correctement. Commençons.
Comparez votre code au suivant pour vous assurer qu’il est correct :
string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input)); string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); } string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Enregistrez votre travail à l’aide de Ctrl + S ou du menu Fichier Visual Studio Code.
Si nécessaire, ouvrez le volet Terminal intégré de Visual Studio 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é.
À l’invite de commandes terminal, entrez dotnet run
Vérifiez que votre code produit la sortie suivante :
there are snakes at the zoo ereht era sekans ta eht oozSi votre code affiche des résultats différents, vous devez le passer en revue afin de trouver votre erreur et d’effectuer des mises à jour. Réexécutez le code pour voir si vous avez résolu le problème. Continuez à mettre à jour et à exécuter votre code jusqu’à ce qu’il produise les résultats attendus.