Ćwiczenie — odnajdywanie funkcji Split() i Join()
- {liczbaMinut} minut
W miarę kontynuowania prac programistycznych w firmie logistycznej rozpoczniesz tworzenie serii małych aplikacji. Te aplikacje współpracują ze sobą, aby pobrać dane z systemu jednego partnera, zmodyfikować je, a następnie przekazać je do systemu wewnętrznego w wymaganym formacie.
Aby wykonać transformację danych, musisz zaakceptować dane przychodzące jako ciąg, przeanalizować je w mniejsze elementy danych, a następnie manipulować nimi w celu dopasowania do innego wymaganego formatu. Jak można analizować dane ciągu na mniejsze elementy danych?
Metody tablicowe typu danych ciągów
Zmienne typu string mają wiele wbudowanych metod, które konwertują pojedynczy ciąg na tablicę mniejszych ciągów lub tablicę pojedynczych znaków.
Podczas przetwarzania danych z innych systemów komputerowych czasami formatuje lub koduje w sposób, który nie jest przydatny do Twoich celów. W takich przypadkach metody tablicy typu danych służą string do analizowania ciągu w tablicy.
Użyj polecenia , ToCharArray() aby odwrócić element string
Usuń lub użyj operatora
//komentarza wiersza, aby oznaczyć jako komentarz cały kod z poprzednich ćwiczeń.Zaktualizuj kod w edytorze programu Visual Studio Code w następujący sposób:
string value = "abc123"; char[] valueArray = value.ToCharArray();
W tym przykładzie ToCharArray() metoda służy do tworzenia tablicy char, gdzie każdy element tablicy reprezentuje jeden znak oryginalnego ciągu.
Odwrotnie, a następnie połącz tablicę char w nowy ciąg
Następnie kolejność znaków w tablicy jest odwrócona, a następnie Write metoda jest używana do łączenia ich z powrotem w pojedyncze dane wyjściowe.
Zaktualizuj kod w edytorze programu Visual Studio Code w następujący sposób:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);Wyrażenie
new string(valueArray)tworzy nowe puste wystąpienie klasySystem.String(która jest taka sama jak typ danychstringw języku C#) i przekazuje tablicę znaków jako konstruktor.Uwaga
Co to jest słowo kluczowe
new? Jak klasaSystem.Stringjest powiązana z typem danychstringw języku C#? Co to jest konstruktor? To świetne pytania, ale niestety wykraczają poza zakres tego modułu. Zaleca się zapoznanie się z biblioteką klas platformy .NET, a także klasami i obiektami w języku C#, aby w pełni zrozumieć, co dzieje się w tle za pomocą tego wyrażenia kodu. Na razie użyj wyszukiwarki i dokumentacji firmy Microsoft, aby znaleźć przykłady, których można użyć w takich sytuacjach, w których wiesz, że chcesz wykonać konwersję, ale nie masz pewności, jak to zrobić przy użyciu języka C#.W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.
Przed utworzeniem lub uruchomieniem kodu należy zapisać plik Program.cs.
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.
Panel terminalu powinien zostać otwarty i powinien zawierać wiersz polecenia pokazujący, że terminal jest otwarty w lokalizacji folderu TestProject.
W wierszu polecenia terminalu, aby uruchomić kod, wpisz dotnet run , a następnie naciśnij Enter.
Uwaga
Jeśli zostanie wyświetlony komunikat "Nie można odnaleźć projektu do uruchomienia", upewnij się, że w wierszu polecenia terminalu zostanie wyświetlona oczekiwana lokalizacja folderu TestProject. Na przykład:
C:\Users\someuser\Desktop\csharpprojects\TestProject>.Powinny zostać wyświetlone następujące dane wyjściowe:
321cba
Połącz wszystkie znaki w nowy ciąg wartości rozdzielanej przecinkami przy użyciu polecenia Join()
W niektórych przypadkach może być konieczne oddzielenie każdego elementu tablicy znaków przy użyciu przecinka, co jest powszechną praktyką podczas pracy z danymi reprezentowanymi jako tekst ASCII. W tym celu należy dodać komentarz do wiersza kodu dodanego w kroku 2 i użyć String metody klasy Join() , przekazując znak, który chcesz rozdzielić każdy segment (przecinek) i samą tablicę.
Zaktualizuj kod w edytorze programu Visual Studio Code w następujący sposób:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.
Powinny zostać wyświetlone następujące dane wyjściowe:
3,2,1,c,b,a
Split() ciąg wartości rozdzielanej przecinkami do tablicy ciągów
Aby ukończyć kod, Split() używana jest metoda . Ta metoda jest przeznaczona dla zmiennych typu string i tworzy tablicę ciągów.
Użyj edytora programu Visual Studio Code, aby dodać następujące wiersze kodu w dolnej części pliku:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Pośmiń chwilę na przejrzenie poprzedniego kodu.
Przecinek jest dostarczany
.Split()jako ogranicznik, aby podzielić jeden długi ciąg na mniejsze ciągi. Następnie kod używaforeachpętli do iterowania poszczególnych elementów nowo utworzonej tablicy ciągów.itemsSprawdź, czy kod jest teraz wyświetlany w następujący sposób:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Zapisz plik kodu, a następnie uruchom kod przy użyciu programu Visual Studio Code.
Po uruchomieniu kodu zobaczysz następujące dane wyjściowe:
3,2,1,c,b,a 3 2 1 c b aTablica utworzona przy użyciu
itemsjest używana wstring[] items = result.Split(',');pętli i wyświetla poszczególne znaki z oryginalnegoforeachelementu zawartego w zmiennejstring.value
Podsumowanie
Poniżej przedstawiono kilka kluczowych kwestii, które należy pamiętać podczas pracy z ciągami i tablicami:
- Aby utworzyć tablicę, użyj metod takich jak
ToCharArray()iSplit() - Aby przekształcić tablicę z powrotem w jeden ciąg, użyj metod takich jak
Join(), lub utwórz nowy ciąg przekazujący tablicęchar