Exerciții - Returnați șiruri din metode
Este posibil să descoperiți adesea că trebuie să scrieți o metodă care returnează un șir. De exemplu, poate doriți să regăsiți un șir dintr-un set de date sau să modificați un șir într-un fel. În acest exercițiu, veți obține o experiență de lucru cu șiruri în metode în timp ce practicați o întrebare comună de interviu.
Crearea unei metode care returnează un șir
Să presupunem că ești candidat într-un interviu de codificare. Intervievatorul vă solicită să scrieți o metodă pentru a inversa un șir fără a utiliza string.Reverse. Gândiți-vă la modul în care ați putea realiza această activitate.
Este posibil să fi decis că puteți inversa un șir prin iterarea de la sfârșitul șirului. Puteți utiliza un șir temporar pentru a stoca fiecare literă de la sfârșit la început. Să începem!
În Visual Studio Code Editor, ștergeți orice cod existent din exercițiile anterioare.
Introduceți următorul cod în editor:
string ReverseWord(string word) { string result = ""; return result; }Metoda trebuie să itereze prin cuvântul dat și să actualizeze rezultatul. Pentru a face acest lucru, actualizați
ReverseWordmetoda cu următorul cod:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }În acest bloc de cod, începeți de la sfârșitul cuvântului utilizând
word.Length - 1. Scădeți una din lungime, deoarece indicii matricei încep la zero și doriți să evitați accesarea unui element în afara limitelor. Apoi adăugați litera la indexul curent laresultșir și mutați indexul înapoi.i >= 0Utilizați deoareceieste actualizat după ce se execută codul în buclă și doriți să includeți indexul zero.
Testați codul
Atunci când codați, este important să verificați frecvent lucrul. Găsirea și corectarea greșelilor mai devreme în procesul de codificare vă permite să petreceți mai mult timp pe baza codului corect, mai degrabă decât să depanați un program mare. Verificarea frecventă a lucrului este o abilitate care codifică și interviurile.
Introduceți o nouă linie de cod necompletată. Apoi creați text de intrare și apelați metoda introducând următorul cod deasupra metodei
ReverseWord:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Dacă este necesar, deschideți panoul Terminal integrat visual Studio Code.
În linia de comandă Terminal, introduceți run dotnet. Comparați ieșirea cu următoarele:
snake ekansDacă codul afișează rezultate neașteptate, va trebui să revizuiți codul pentru a găsi eroarea și a face actualizări. Rulați codul din nou pentru a vedea dacă ați remediat problema. Continuați actualizarea și rularea codului până când codul produce rezultatele așteptate.
Crearea unei metode de a inversa cuvintele dintr-o propoziție
Să presupunem că intervievatorul vă pune o întrebare de urmărire. Ei vor să inverseze fiecare cuvânt într-o propoziție dată, menținând poziția originală a fiecărui cuvânt. Se poate presupune că fiecare cuvânt este separat printr-un spațiu. De exemplu, "tip de returnare șir" ar deveni "gnirts nruter epyt". Gândiți-vă la modul în care puteți efectua această activitate.
Dacă utilizați metoda pe care ați scris-o în activitatea anterioară, este posibil să vă dați seama că puteți utiliza metoda pentru a inversa fiecare cuvânt din șir individual. Puteți să creați o propoziție nouă și să adăugați fiecare cuvânt pe măsură ce este inversat. Să începem!
Creați o linie de cod necompletată nouă la sfârșitul programului curent. Apoi introduceți următorul cod pentru a crea o nouă metodă:
string ReverseSentence(string input) { string result = ""; return result; }În continuare, puteți extrage cuvintele individuale din șir utilizând
string.Split. ActualizațiReverseSentencemetoda la următoarele:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Acum, că aveți acces la fiecare cuvânt individual din propoziție, puteți utiliza metoda dvs. pentru fiecare cuvânt și stocați-le
ReverseWordînresult.Actualizați
ReverseSentencemetoda la următoarele:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Observați cum puteți apela
ReverseWordmetoda în interiorul unui operator de atribuire compus. În acest cod, valoarea returnată este capturată de laReverseWordși adăugată laresult. Metodele cu valori returnate pot fi utilizate oriunde aveți nevoie de ele, atât timp cât tipul de date îndeplinește cerințele.În acest cod, fiecare cuvânt inversat este adăugat la rezultat cu un spațiu adăugat. Totuși, acest lucru lasă un spațiu suplimentar la sfârșitul propoziției inversate.
Puteți elimina spațiul suplimentar de la final utilizând
string.Trim. Actualizați metoda la următorul cod:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Luați un moment pentru a lua în considerare rezultatul returnat al acestei metode. O metodă poate utiliza alte metode în timpul execuției și chiar în instrucțiunea de returnare, atât timp cât tipurile de date se potrivesc.
Acum sunteți gata să vă apelați metoda!
Actualizați
inputtextul și instrucțiuneaConsole.WriteLineastfel:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Verificați-vă activitatea
În această activitate, veți rula aplicația de la Terminalul integrat și veți verifica dacă codul funcționează corect. Să începem.
Comparați codul cu următoarele pentru a vă asigura că este corect:
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; }Salvați lucrul utilizând Ctrl + S sau utilizând meniul Fișier de cod Visual Studio.
Dacă este necesar, deschideți panoul Terminal integrat visual Studio Code.
În panoul EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în terminal integrat.
În linia de comandă Terminal, introduceți run dotnet
Verificați dacă codul dvs. generează următoarea ieșire:
there are snakes at the zoo ereht era sekans ta eht oozDacă codul afișează rezultate diferite, va trebui să revizuiți codul pentru a găsi eroarea și a face actualizări. Rulați codul din nou pentru a vedea dacă ați remediat problema. Continuați actualizarea și rularea codului până când codul produce rezultatele așteptate.