Übung: Zurückgeben von Zeichenfolgen aus Methoden
Möglicherweise müssen Sie häufig eine Methode schreiben, die eine Zeichenfolge zurückgibt. Beispielsweise sollten Sie eine Zeichenfolge aus einer Gruppe von Daten abrufen oder eine Zeichenfolge in irgendeiner Weise ändern. In dieser Übung sammeln Sie Erfahrungen mit der Arbeit mit Zeichenfolgen in Methoden und üben gleichzeitig eine häufig gestellte Interviewfrage.
Erstellen einer Methode, die eine Zeichenfolge zurückgibt
Angenommen, Sie sind ein*e Bewerber*in bei einem Vorstellungsgespräch. Der*Die Personaler*in fordert Sie auf, eine Methode zum Umkehren einer Zeichenfolge zu schreiben, ohne string.Reverse zu verwenden. Nehmen Sie sich einen Moment Zeit, um darüber nachzudenken, wie Sie diese Aufgabe erledigen könnten.
Sie haben vielleicht festgestellt, dass Sie eine Zeichenfolge umkehren können, indem Sie vom Ende der Zeichenfolge aus iterieren. Sie können eine temporäre Zeichenfolge verwenden, um jeden Buchstaben von Ende bis Anfang zu speichern. Jetzt geht‘s los!
Löschen Sie im Visual Studio Code-Editor vorhandenen Code aus den vorherigen Übungen.
Geben Sie im Editor den folgenden Code ein:
string ReverseWord(string word) { string result = ""; return result; }Die Methode muss das gegebene Wort durchlaufen und das Ergebnis aktualisieren. Aktualisieren Sie hierzu die
ReverseWord-Methode mit dem folgenden Code:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }In diesem Codeblock beginnen Sie mit
word.Length - 1am Ende des Wortes. Sie subtrahieren eins von der Länge, da die Arrayindizes bei null beginnen und Sie den Zugriff auf ein Element außerhalb der Grenzen vermeiden möchten. Dann fügen Sie den Buchstaben am aktuellen Index zur Zeichenfolgeresulthinzu und verschieben den Index rückwärts. Sie verwendeni >= 0, dainach der Ausführung des Codes in der Schleife aktualisiert wird, und Sie möchten sichergehen, dass der nullte Index enthalten ist.
Testen des Codes
Beim Programmieren ist es wichtig, Ihre Arbeit häufig zu überprüfen. Durch das Auffinden und Korrigieren von Fehlern in einem frühen Stadium des Programmierprozesses können Sie mehr Zeit damit verbringen, auf richtigem Code aufzubauen, anstatt ein großes Programm zu debuggen. Es wird im IT-Sektor sehr geschätzt, wenn Sie Ihre Arbeit häufig überprüfen.
Geben Sie eine neue leere Codezeile ein. Erstellen Sie dann Eingabetext, und rufen Sie Ihre Methode auf, indem Sie den folgenden Code über der
ReverseWord-Methode eingeben:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Öffnen Sie bei Bedarf den Bereich „Integriertes Terminal“ von Visual Studio Code.
Geben Sie an der Terminal-Eingabeaufforderung dotnet run ein. Vergleichen Sie Ihre Ausgabe mit Folgendem:
snake ekansWenn Ihr Code unterschiedliche Ergebnisse anzeigt, müssen Sie ihn überprüfen, um den Fehler zu finden und Updates vorzunehmen. Führen Sie den Code erneut aus, um festzustellen, ob Sie das Problem behoben haben. Fahren Sie mit dem Aktualisieren und Ausführen Ihres Codes fort, bis der Code die erwarteten Ergebnisse generiert.
Erstellen einer Methode zum Umkehren von Wörtern in einem Satz
Angenommen, der*die Personaler*in stellt Ihnen eine weiterführende Frage. Sie sollen jedes Wort in einem bestimmten Satz umkehren und dabei die ursprüngliche Position jedes Wortes beibehalten. Dabei können Sie davon ausgehen, dass jedes Wort durch ein Leerzeichen getrennt ist. Beispielsweise würde „Zeichenfolgenrückgabetyp“ zu „pytebagkcürneglofnehciez“ werden. Nehmen Sie sich einen Moment Zeit, um darüber nachzudenken, wie Sie diese Aufgabe durchführen könnten.
Wenn Sie die Methode verwenden, die Sie in der vorherigen Aufgabe geschrieben haben, werden Sie vielleicht feststellen, dass Sie die Methode verwenden können, um jedes Wort in der Zeichenfolge einzeln umzukehren. Sie können einen neuen Satz erstellen und jedes Wort in umgekehrter Reihenfolge hinzufügen. Jetzt geht‘s los!
Erstellen Sie am Ende des aktuellen Programms eine neue leere Codezeile. Geben Sie dann den folgenden Code ein, um eine neue Methode zu erstellen:
string ReverseSentence(string input) { string result = ""; return result; }Als Nächstes können Sie die einzelnen Wörter mit
string.Splitaus der Zeichenfolge extrahieren. Aktualisieren Sie dieReverseSentence-Methode auf Folgendes:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Da Sie nun Zugriff auf jedes einzelne Wort des Satzes haben, können Sie Ihre
ReverseWord-Methode auf jedes Wort anwenden und sie inresultspeichern.Aktualisieren Sie die
ReverseSentence-Methode auf Folgendes:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Beachten Sie, wie Sie die
ReverseWord-Methode in einem zusammengesetzten Zuweisungsoperator aufrufen können. In diesem Code wird der Rückgabewert vonReverseWorderfasst undresulthinzugefügt. Methoden mit Rückgabewerten können überall dort verwendet werden, wo Sie sie benötigen, solange der Datentyp den Anforderungen entspricht.In diesem Code wird jedes umgekehrte Wort mit einem zusätzlichen Leerzeichen an das Ergebnis angehängt. Dadurch bleibt jedoch ein zusätzliches Leerzeichen am Ende des umgekehrten Satzes.
Sie können das zusätzliche Leerzeichen am Ende mit
string.Trimentfernen. Aktualisieren Sie die Methode mit folgendem Code:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Nehmen Sie sich einen Moment Zeit, um das Rückgabeergebnis dieser Methode zu betrachten. Eine Methode kann während ihrer Ausführung und sogar in der return-Anweisung andere Methoden verwenden, solange die Datentypen übereinstimmen.
Jetzt können Sie Ihre Methode aufrufen.
Aktualisieren Sie den
input-Text und dieConsole.WriteLine-Anweisung wie folgt:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Arbeit überprüfen
In dieser Aufgabe führen Sie Ihre Anwendung über das integrierte Terminal aus und überprüfen, ob Ihr Code ordnungsgemäß funktioniert. Fangen wir also an.
Vergleichen Sie Ihren Code mit dem folgenden Code, um sicherzustellen, dass er richtig ist:
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; }Speichern Sie Ihre Arbeit mit STRG + S oder mithilfe des Visual Studio Code File-Menüs.
Öffnen Sie bei Bedarf den Bereich „Integriertes Terminal“ von Visual Studio Code.
Klicken Sie im EXPLORER-Bereich auf "TestProject", um ein Terminal am Speicherort des TestProject-Ordners zu öffnen, klicken Sie mit der rechten Maustaste auf "TestProject", und wählen Sie dann "In integriertem Terminal öffnen" aus.
Geben Sie im Terminal den Befehl dotnet run ein.
Stellen Sie sicher, dass Ihr Code die folgende Ausgabe erzeugt:
there are snakes at the zoo ereht era sekans ta eht oozWenn Ihr Code unterschiedliche Ergebnisse anzeigt, müssen Sie ihn überprüfen, um den Fehler zu finden und Aktualisierungen vorzunehmen. Führen Sie den Code erneut aus, um festzustellen, ob Sie das Problem behoben haben. Fahren Sie mit dem Aktualisieren und Ausführen Ihres Codes fort, bis der Code die erwarteten Ergebnisse generiert.