Øvelse – Returnerer strenge fra metoder
Du kan ofte opleve, at du skal skrive en metode, der returnerer en streng. Det kan f.eks. være, at du vil hente en streng fra et datasæt eller ændre en streng på en eller anden måde. I denne øvelse får du lidt erfaring med at arbejde med strenge i metoder, mens du øver dig i et almindeligt interviewspørgsmål.
Opret en metode, der returnerer en streng
Forestil dig, at du er kandidat i et kodningsinterview. Intervieweren beder dig om at skrive en metode til at fortryde en streng uden at bruge string.Reverse. Brug et øjeblik på at tænke over, hvordan du kan udføre denne opgave.
Du har måske besluttet, at du kan fortryde en streng ved at gentage fra slutningen af strengen. Du kan bruge en midlertidig streng til at gemme hvert bogstav fra start til slut. Lad os komme i gang!
Slet eventuel eksisterende kode fra de forrige øvelser i Visual Studio Code Editor.
Angiv følgende kode i editoren:
string ReverseWord(string word) { string result = ""; return result; }Metoden skal gentage gennem det angivne ord og opdatere resultatet. Det gør du ved at
ReverseWordopdatere metoden med følgende kode:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }I denne kodeblok starter du fra slutningen af ordet ved hjælp af
word.Length - 1. Du trækker en fra længden, da matrixindeks starter ved nul, og du vil undgå at få adgang til et element uden for grænserne. Derefter føjer du bogstavet i det aktuelle indeks til strengenresultog flytter indekset bagud. Du brugeri >= 0daiopdateres, når koden i løkken er udført, og du vil være sikker på at inkludere nulpunktets indeks.
Test din kode
Når du koder, er det vigtigt ofte at kontrollere dit arbejde. Ved at finde og rette fejl tidligt i kodningsprocessen kan du bruge mere tid på at bygge på korrekt kode i stedet for at foretage fejlfinding af ét stort program. At kontrollere dit arbejde ofte er en færdighed, der også værdsætter kodning af interviewere.
Angiv en ny tom kodelinje. Opret derefter noget inputtekst, og kald din metode ved at angive følgende kode over
ReverseWordmetoden:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Åbn om nødvendigt Visual Studio Codes integrerede terminalpanel.
I kommandoprompten Terminal skal du angive dotnetkørsel. Sammenlign dit output med følgende:
snake ekansHvis din kode viser uventede resultater, skal du gennemse din kode for at finde fejlen og foretage opdateringer. Kør koden igen for at se, om du har løst problemet. Fortsæt med at opdatere og køre din kode, indtil din kode giver de forventede resultater.
Opret en metode til at fortryde ord i en sætning
Lad os antage, at din interviewer stiller dig et opfølgende spørgsmål. De vil have dig til at vende hvert ord i en given sætning og bevare den oprindelige placering af hvert ord. Du kan antage, at hvert ord er adskilt af et mellemrum. "strengreturtype" bliver f.eks. til "gnirts nruter epyt". Brug et øjeblik på at overveje, hvordan du kan udføre denne opgave.
Hvis du bruger den metode, du skrev i den forrige opgave, kan du måske se, at du kan bruge metoden til at fortryde hvert ord i strengen enkeltvist. Du kan oprette en ny sætning og tilføje hvert ord, når det vendes. Lad os komme i gang!
Opret en ny tom kodelinje i slutningen af det aktuelle program. Angiv derefter følgende kode for at oprette en ny metode:
string ReverseSentence(string input) { string result = ""; return result; }Derefter kan du udtrække de enkelte ord fra strengen ved hjælp af
string.Split. Opdater metodenReverseSentencetil følgende:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Nu, hvor du har adgang til hvert enkelt ord i sætningen, kan du bruge din
ReverseWordmetode på hvert ord og gemme dem iresult.Opdater metoden
ReverseSentencetil følgende:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Bemærk, hvordan du kan kalde
ReverseWordmetoden i en sammensat tildelingsoperator. I denne kode hentes returværdien fraReverseWordog føjes tilresult. Metoder med returværdier kan bruges overalt, hvor du har brug for dem, så længe datatypen passer til kravene.I denne kode føjes hvert omvendte ord til resultatet med et ekstra mellemrum. Dette efterlader dog et ekstra mellemrum i slutningen af den omvendte sætning.
Du kan fjerne den ekstra plads til sidst ved hjælp af
string.Trim. Opdater metoden til følgende kode:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Brug et øjeblik på at overveje returresultatet af denne metode. En metode kan bruge andre metoder i hele udførelsen og endda i retursætningen, så længe datatyperne stemmer overens.
Nu er du klar til at kalde din metode!
Opdater teksten
inputog sætningenConsole.WriteLinetil følgende:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Kontrollér dit arbejde
I denne opgave skal du køre dit program fra den integrerede terminal og kontrollere, at din kode fungerer korrekt. Lad os komme i gang.
Sammenlign din kode med følgende for at sikre, at den er korrekt:
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; }Gem dit arbejde ved hjælp af Ctrl + S eller ved hjælp af menuen Filer i Visual Studio Code.
Åbn om nødvendigt Visual Studio Codes integrerede terminalpanel.
Højreklik på TestProjecti panelet EXPLORER for at åbne en Terminal på mappen TestProject, og vælg derefter Åbn i integreret terminal.
I kommandoprompten Terminal skal du angive dotnetkørsel
Kontrollér, at din kode producerer følgende output:
there are snakes at the zoo ereht era sekans ta eht oozHvis din kode viser forskellige resultater, skal du gennemse din kode for at finde fejlen og foretage opdateringer. Kør koden igen for at se, om du har løst problemet. Fortsæt med at opdatere og køre din kode, indtil din kode giver de forventede resultater.