Exercice - Retourner des chaînes à partir de méthodes

Effectué

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 !

  1. Dans l’Éditeur Visual Studio Code, supprimez tout code existant des exercices précédents.

  2. Entrez le code suivant dans l’Éditeur :

    string ReverseWord(string word) 
    {
        string result = "";
    
        return result;
    }
    
  3. 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 ReverseWord avec 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îne result et déplacez l’index à l’arrière. Vous utilisez i >= 0 puisque i est 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.

  1. 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));
    
  2. Si nécessaire, ouvrez le volet Terminal intégré de Visual Studio Code.

  3. À l’invite de commandes du terminal, entrez dotnet run. Comparez votre sortie avec ce qui suit :

    snake
    ekans
    

    Si 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 !

  1. 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;
    }
    
  2. Puis, vous pouvez extraire les mots individuels de la chaîne avec string.Split. Mettez à jour la méthode ReverseSentence comme 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 ReverseWord sur chaque mot et les stocker dans result.

  3. Mettez à jour la méthode ReverseSentence comme 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 ReverseWord dans un opérateur d’assignation composée. Dans ce code, la valeur de retour est capturée à partir de ReverseWord et 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.

  4. 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 !

  5. Mettez à jour le texte input et l’instruction Console.WriteLine comme 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.

  1. 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;
    }
    
  2. Enregistrez votre travail à l’aide de Ctrl + S ou du menu Fichier Visual Studio Code.

  3. 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é.

  4. À l’invite de commandes terminal, entrez dotnet run

  5. Vérifiez que votre code produit la sortie suivante :

    there are snakes at the zoo
    ereht era sekans ta eht ooz 
    

    Si 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.