Ćwiczenie — zwracanie ciągów z metod
Często może się okazać, że trzeba napisać metodę zwracającą ciąg. Na przykład możesz pobrać ciąg z zestawu danych lub zmodyfikować ciąg w jakiś sposób. W tym ćwiczeniu uzyskasz doświadczenie w pracy z ciągami w metodach podczas wykonywania typowego pytania kwalifikacyjnego.
Tworzenie metody zwracającej ciąg
Załóżmy, że jesteś kandydatem w wywiadzie programistycznym. Osoba przeprowadzająca wywiad prosi o napisanie metody w celu odwrócenia ciągu bez użycia metody string.Reverse. Pośmiń chwilę, aby zastanowić się, jak można wykonać to zadanie.
Możesz zdecydować, że możesz odwrócić ciąg, iterując od końca ciągu. Możesz użyć ciągu tymczasowego do przechowywania każdej litery od końca do początku. Zaczynamy!
W edytorze programu Visual Studio Code usuń dowolny istniejący kod z poprzednich ćwiczeń.
Wprowadź następujący kod w edytorze:
string ReverseWord(string word) { string result = ""; return result; }Metoda musi iterować po danym słowie i aktualizować wynik. W tym celu zaktualizuj metodę
ReverseWordprzy użyciu następującego kodu:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }W tym bloku kodu zaczynasz od końca słowa przy użyciu polecenia
word.Length - 1. Odejmujesz jeden od długości, ponieważ indeksy tablic zaczynają się od zera i chcesz uniknąć uzyskiwania dostępu do elementu poza granicami. Następnie dodajesz literę w bieżącym indeksieresultdo ciągu i przenosisz indeks do tyłu. Używaszi >= 0funkcji , ponieważijest aktualizowana po wykonaniu kodu w pętli i chcesz uwzględnić indeks zeroth.
testowanie kodu
Podczas kodowania ważne jest, aby często sprawdzać swoją pracę. Znajdowanie i poprawianie błędów na wczesnym etapie procesu kodowania pozwala poświęcić więcej czasu na tworzenie poprawnego kodu, a nie debugowanie jednego dużego programu. Sprawdzanie pracy często jest umiejętnością, którą również cenią osoby przeprowadzające wywiady.
Wprowadź nowy pusty wiersz kodu. Następnie utwórz tekst wejściowy i wywołaj metodę, wprowadzając następujący kod powyżej
ReverseWordmetody:string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));W razie potrzeby otwórz panel zintegrowany terminal programu Visual Studio Code.
W wierszu polecenia terminalu wprowadź polecenie dotnet run. Porównaj dane wyjściowe z następującymi danymi:
snake ekansJeśli kod wyświetla nieoczekiwane wyniki, musisz przejrzeć kod, aby znaleźć błąd i wprowadzić aktualizacje. Uruchom ponownie kod, aby sprawdzić, czy problem został rozwiązany. Kontynuuj aktualizowanie i uruchamianie kodu, dopóki kod nie generuje oczekiwanych wyników.
Tworzenie metody odwracania wyrazów w zdaniu
Załóżmy, że twój rozmówca zadaje Ci pytanie. Chcą odwrócić każde słowo w danym zdaniu, zachowując oryginalną pozycję każdego słowa. Można założyć, że każde słowo jest oddzielone spacją. Na przykład "ciąg zwracany typ" stanie się "gnirts nruter epyt". Pośmiń chwilę, aby zastanowić się, jak można wykonać to zadanie.
Jeśli używasz metody napisanej w poprzednim zadaniu, możesz zdać sobie sprawę, że możesz użyć metody , aby odwrócić każdy wyraz w ciągu indywidualnie. Możesz utworzyć nowe zdanie i dodać każde słowo, ponieważ jest odwrócone. Zaczynamy!
Utwórz nowy pusty wiersz kodu na końcu bieżącego programu. Następnie wprowadź następujący kod, aby utworzyć nową metodę:
string ReverseSentence(string input) { string result = ""; return result; }Następnie możesz wyodrębnić poszczególne wyrazy z ciągu przy użyciu polecenia
string.Split. Zaktualizuj metodęReverseSentencedo następującej:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Teraz, gdy masz dostęp do każdego pojedynczego wyrazu w zdaniu, możesz użyć
ReverseWordmetody w każdym słowie i zapisać je w plikuresult.Zaktualizuj metodę
ReverseSentencedo następującej:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Zwróć uwagę, jak można wywołać metodę
ReverseWordwewnątrz operatora przypisania złożonego. W tym kodzie zwracana wartość jest przechwytywana zReverseWordelementu i dodawana do elementuresult. Metody z wartościami zwracanymi mogą być używane wszędzie tam, gdzie są potrzebne, o ile typ danych spełnia wymagania.W tym kodzie każdy odwrócony wyraz jest dołączany do wyniku z dodanym miejscem. Jednak pozostawia to dodatkowe miejsce na końcu odwróconego zdania.
Dodatkowe miejsce na końcu można usunąć przy użyciu polecenia
string.Trim. Zaktualizuj metodę do następującego kodu:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Pośmiń chwilę, aby rozważyć wynik zwracany tej metody. Metoda może używać innych metod podczas wykonywania, a nawet w instrukcji return, o ile typy danych są zgodne.
Teraz możesz wywołać metodę!
Zaktualizuj tekst i instrukcję
inputConsole.WriteLinena następujące:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Sprawdź swoją pracę
W tym zadaniu uruchomisz aplikację ze zintegrowanego terminalu i sprawdzisz, czy kod działa poprawnie. Zaczynajmy.
Porównaj kod z następującymi elementami, aby upewnić się, że jest on poprawny:
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; }Zapisz swoją pracę przy użyciu Ctrl + S lub za pomocą menu Plik programu Visual Studio Code.
W razie potrzeby otwórz panel zintegrowany terminal programu Visual Studio Code.
W panelu EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.
W wierszu polecenia terminalu wprowadź polecenie dotnet run
Sprawdź, czy kod generuje następujące dane wyjściowe:
there are snakes at the zoo ereht era sekans ta eht oozJeśli kod wyświetla różne wyniki, musisz przejrzeć kod, aby znaleźć błąd i wprowadzić aktualizacje. Uruchom ponownie kod, aby sprawdzić, czy problem został rozwiązany. Kontynuuj aktualizowanie i uruchamianie kodu, dopóki kod nie generuje oczekiwanych wyników.