Oefening: tekenreeksen retourneren van methoden

Voltooid

Het kan gebeuren dat u vaak een methode moet schrijven die een tekenreeks retourneert. U kunt bijvoorbeeld een tekenreeks ophalen uit een set gegevens of een tekenreeks op een bepaalde manier wijzigen. In deze oefening krijgt u enige ervaring met het werken met tekenreeksen in methoden terwijl u een veelvoorkomende interviewvraag oefent.

Een methode maken die een tekenreeks retourneert

Stel dat u kandidaat bent in een coderingsgesprek. De interviewer vraagt u een methode te schrijven om een tekenreeks om te draaien zonder gebruik te maken string.Reversevan . Neem even de tijd om na te denken over hoe u deze taak kunt uitvoeren.

Mogelijk hebt u besloten dat u een tekenreeks kunt omkeren door vanaf het einde van de tekenreeks te herhalen. U kunt een tijdelijke tekenreeks gebruiken om elke letter van begin tot eind op te slaan. Laten we beginnen.

  1. Verwijder in de Visual Studio Code-editor alle bestaande code uit de vorige oefeningen.

  2. Voer de volgende code in de editor in:

    string ReverseWord(string word) 
    {
        string result = "";
    
        return result;
    }
    
  3. De methode moet het opgegeven woord herhalen en het resultaat bijwerken. Werk hiervoor de ReverseWord methode bij met de volgende code:

    string ReverseWord(string word) 
    {
        string result = "";
        for (int i = word.Length - 1; i >= 0; i--) 
        {
            result += word[i];
        }
        return result;
    }
    

    In dit codeblok begint u vanaf het einde van het woord met behulp van word.Length - 1. U trekt er een af van de lengte sinds matrixindexen beginnen bij nul en u wilt voorkomen dat een element buiten de grenzen wordt geopend. Vervolgens voegt u de letter aan de huidige index toe aan de result tekenreeks en verplaatst u de index achteruit. U gebruikt i >= 0 omdat i deze wordt bijgewerkt nadat de code in de lus is uitgevoerd en u de nulde index wilt opnemen.

Uw code testen

Bij het coderen is het belangrijk dat u uw werk regelmatig controleert. Door fouten vroeg in het coderingsproces te vinden en te corrigeren, kunt u meer tijd besteden aan het bouwen van de juiste code in plaats van het opsporen van fouten in één groot programma. Het regelmatig controleren van uw werk is een vaardigheid die interviewers ook zeer waarderen.

  1. Voer een nieuwe lege coderegel in. Maak vervolgens wat invoertekst en roep uw methode aan door de volgende code boven de ReverseWord methode in te voeren:

    string input = "snake";
    
    Console.WriteLine(input);
    Console.WriteLine(ReverseWord(input));
    
  2. Open zo nodig het geïntegreerde terminalpaneel van Visual Studio Code.

  3. Voer bij de Terminal-opdrachtprompt dotnet-uitvoering in. Vergelijk uw uitvoer met het volgende:

    snake
    ekans
    

    Als uw code onverwachte resultaten weergeeft, moet u uw code controleren om uw fout te vinden en updates aan te brengen. Voer de code opnieuw uit om te zien of u het probleem hebt opgelost. Ga door met het bijwerken en uitvoeren van uw code totdat uw code de verwachte resultaten produceert.

Een methode maken om woorden in een zin om te keren

Stel dat uw interviewer u een vervolgvraag stelt. Ze willen dat u elk woord in een bepaalde zin omkert, waarbij de oorspronkelijke positie van elk woord behouden blijft. U kunt aannemen dat elk woord wordt gescheiden door een spatie. 'tekenreeks retourtype' wordt bijvoorbeeld 'gnirts nruter epyt'. Neem even de tijd om na te denken over hoe u deze taak kunt uitvoeren.

Als u de methode gebruikt die u in de vorige taak hebt geschreven, realiseert u zich misschien dat u de methode kunt gebruiken om elk woord afzonderlijk in de tekenreeks om te draaien. U kunt een nieuwe zin maken en elk woord toevoegen terwijl dit wordt omgekeerd. Laten we beginnen.

  1. Maak een nieuwe lege coderegel aan het einde van het huidige programma. Voer vervolgens de volgende code in om een nieuwe methode te maken:

    string ReverseSentence(string input) 
    {
        string result = "";
    
        return result;
    }
    
  2. Vervolgens kunt u de afzonderlijke woorden uit de tekenreeks extraheren met behulp van string.Split. Werk de ReverseSentence methode bij naar het volgende:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        return result;
    }
    

    Nu u toegang hebt tot elk afzonderlijk woord in de zin, kunt u uw ReverseWord methode voor elk woord gebruiken en opslaan in result.

  3. Werk de ReverseSentence methode bij naar het volgende:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        foreach(string word in words) 
        {
            result += ReverseWord(word) + " ";
        }
    
        return result;
    }
    

    U ziet hoe u de ReverseWord methode binnen een samengestelde toewijzingsoperator kunt aanroepen. In deze code wordt de retourwaarde vastgelegd van ReverseWord en toegevoegd aan result. Methoden met retourwaarden kunnen overal worden gebruikt waar u ze nodig hebt, zolang het gegevenstype aan de vereisten voldoet.

    In deze code wordt elk omgekeerd woord toegevoegd aan het resultaat met een extra spatie. Dit laat echter een extra spatie achter aan het einde van de omgekeerde zin.

  4. U kunt de extra ruimte aan het einde verwijderen met behulp van string.Trim. Werk de methode bij naar de volgende code:

    string ReverseSentence(string input) 
    {
        string result = "";
        string[] words = input.Split(" ");
    
        foreach(string word in words) 
        {
            result += ReverseWord(word) + " ";
        }
    
        return result.Trim();
    }
    

    Neem even de tijd om rekening te houden met het resultaat van de retour van deze methode. Een methode kan andere methoden gebruiken tijdens de uitvoering en zelfs in de retourinstructie, zolang de gegevenstypen overeenkomen.

    Nu bent u klaar om uw methode aan te roepen.

  5. Werk de input tekst en de Console.WriteLine instructie bij naar het volgende:

    string input = "there are snakes at the zoo";
    
    Console.WriteLine(input);
    Console.WriteLine(ReverseSentence(input));
    

Controleer uw werk

In deze taak voert u uw toepassing uit vanuit de Integrated Terminal en controleert u of uw code correct werkt. Laten we aan de slag gaan.

  1. Vergelijk uw code met het volgende om te controleren of deze juist is:

    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. Sla uw werk op met Ctrl + S of met het menu Visual Studio Code File.

  3. Open zo nodig het geïntegreerde terminalpaneel van Visual Studio Code.

    Klik in het deelvenster EXPLORER om een Terminal te openen op de locatie van de map TestProject met de rechtermuisknop op TestProject en selecteer Vervolgens Openen in geïntegreerde terminal.

  4. Voer bij de Terminal-opdrachtprompt dotnet-uitvoering in

  5. Controleer of uw code de volgende uitvoer produceert:

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

    Als uw code verschillende resultaten weergeeft, moet u uw code controleren om uw fout te vinden en updates aan te brengen. Voer de code opnieuw uit om te zien of u het probleem hebt opgelost. Ga door met het bijwerken en uitvoeren van uw code totdat uw code de verwachte resultaten produceert.