Dzielenie i łączenie
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 4 z 56.
Dwa codzienne narzędzia do pracy z tekstem rozdzielanym separatorami. Oba pochodzą z Foundation, które jest już zaimportowane.
components(separatedBy:) dzieli ciąg znaków na tablicę wartości typu String przy użyciu dowolnego separatora, który przekażesz:
let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts) // ["red", "green", "blue"]Odwrotnością jest joined(separator:) dla dowolnej wartości typu [String]:
let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line) // "swift is fun"Często będziesz je łączyć: dzielić, przekształcać za pomocą map i łączyć ponownie. Wynik działania map na [String] nadal jest typu [String], więc joined działa bezpośrednio.
Wyzwanie
ŁatwyWczytaj jeden wiersz danych wejściowych: listę słów oddzielonych przecinkami.
Wypisz trzy wiersze:
- Liczbę słów po podzieleniu według
, - Słowa ponownie połączone za pomocą
>(spacja, znak większości, spacja), zapisane wielkimi literami - Najdłuższe słowo z listy (po podzieleniu). Jeśli dwa słowa są tej samej długości, wybierz to, które występuje jako pierwsze.
Dla danych wejściowych red,green,blue wynikiem jest:
3
RED > GREEN > BLUE
greenSpróbuj swoich sił
let line = readLine()!
let words = line.components(separatedBy: ",")
// TODO: wypisz liczbę słów, słowa połączone separatorem " > " i zapisane wielkimi literami oraz pierwsze najdłuższe słowo
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift