Fragment wykładu z mentorem w ramach kursu Codegym University. Zapisz się na pełny kurs.
1 Porównanie ciągów znaków
Jedną z najczęstszych operacji na łańcuchach jest porównanie. Klasa String ma ponad dziesięć różnych metod, które służą do porównywania jednego ciągu z innym. Poniżej przyjrzymy się 8 głównym.
| Metody | Opis |
|---|---|
|
Ciągi są uważane za równe, jeśli wszystkie ich znaki są zgodne. |
|
Porównuje ciągi, ignorując wielkość liter (ignoruje, czy są to wielkie czy małe litery) |
|
Porównuje ciągi, zwraca liczbę pasujących znaków od początku ciągu. |
|
Zwraca liczbę pasujących znaków od początku łańcucha, ignoruje wielkość liter |
|
Porównuje części łańcuchów |
|
Sprawdza, czy bieżący ciąg zaczyna się od ciąguprefix |
|
Sprawdza, czy bieżący ciąg kończy się na ciągusuffix |
Załóżmy, że chcesz napisać program, który prosi użytkownika o podanie ścieżki do pliku, a następnie sprawdza typ pliku na podstawie jego rozszerzenia. Kod takiego programu mógłby wyglądać mniej więcej tak:
| Kod | Notatki |
|---|---|
|
Utwórz Scannerobiekt Odczytaj linię z konsoli Sprawdź, czy ciąg pathkończy się podanym ciągiem |
2 Wyszukiwanie podciągów
Po porównaniu łańcuchów, drugą najpopularniejszą operacją jest znalezienie jednego ciągu wewnątrz drugiego. Klasa String ma również kilka metod:
| Metody | Opis |
|---|---|
|
Wyszukuje ciąg strw bieżącym ciągu. Zwraca indeks pierwszego znaku pierwszego wystąpienia. |
|
Wyszukuje ciąg strw bieżącym ciągu, pomijając pierwsze indexznaki. Zwraca indeks wystąpienia. |
|
Wyszukuje ciąg strw bieżącym ciągu, zaczynając od końca. Zwraca indeks pierwszego wystąpienia. |
|
Wyszukuje ciąg strw bieżącym ciągu od końca, pomijając pierwsze indexznaki. |
|
Sprawdza, czy bieżący ciąg pasuje do wzorca określonego przez wyrażenie regularne. |
Metody indexOf(String)i indexOf(String, index)są często używane w połączeniu. Pierwsza metoda pozwala znaleźć pierwsze wystąpienie przekazanego podłańcucha w bieżącym ciągu. Druga metoda pozwala znaleźć drugie, trzecie itd. wystąpienie, pomijając pierwsze znaki indeksu.
Załóżmy, że mamy adres URL taki jak „ https://domain.com/about/reviews ” i chcemy zastąpić nazwę domeny ciągiem „ codegym.cc ”. Adresy URL mogą mieć różne nazwy domen, ale wiemy, że:
- Nazwa domeny jest poprzedzona dwoma ukośnikami — „//”
- Po nazwie domeny następuje pojedynczy ukośnik — „
/”
Oto jak wyglądałby kod takiego programu:
| Kod | Notatki |
|---|---|
|
Utwórz obiekt Scanner Odczyt linii z konsoli Pobierz indeks pierwszego wystąpienia ciągu znaków " //" Otrzymujemy indeks pierwszego wystąpienia ciągu znaków /, ale zwracamy uwagę tylko na wystąpienie znaków //. Otrzymujemy ciąg od początku do końca znaków //Otrzymujemy ciąg od /do końca. Łączymy łańcuchy i nową domenę. |
Metody lastIndexOf(String)i lastIndexOf(String, index)działają w ten sam sposób, tylko wyszukiwanie odbywa się od końca łańcucha do początku.
3 Tworzenie podciągów
Fragment wykładu z mentorem w ramach kursu Codegym University. Zapisz się na pełny kurs.
Oprócz porównywania łańcuchów i znajdowania podłańcuchów istnieje jeszcze jedna bardzo popularna czynność: pobieranie podłańcucha z ciągu. Tak się złożyło, że poprzedni przykład pokazał substring()wywołanie metody, które zwróciło część łańcucha.
Oto lista 8 metod, które zwracają podłańcuchy z bieżącego ciągu:
| Metody | Opis |
|---|---|
|
Zwraca podłańcuch określony przez zakres indeksu beginIndex..endIndex. |
|
Powtarza bieżący ciąg n razy |
|
Zwraca nowy ciąg znaków: zastępuje znak oldCharznakiemnewChar |
|
Zastępuje pierwszy podłańcuch, określony przez wyrażenie regularne, w bieżącym ciągu. |
|
Zastępuje wszystkie podłańcuchy w bieżącym ciągu, które pasują do wyrażenia regularnego. |
|
Konwertuje ciąg na małe litery |
|
Konwertuje ciąg na wielkie litery |
|
Usuwa wszystkie spacje na początku i na końcu łańcucha |
Oto podsumowanie dostępnych metod:
substring(int beginIndex, int endIndex)metoda
Metoda substringzwraca nowy ciąg, który składa się ze znaków w bieżącym ciągu, zaczynając od znaku z indeksem beginIndexi kończąc na endIndex. Podobnie jak w przypadku wszystkich interwałów w Javie, znak z indeksem endIndexnie jest uwzględniany w interwale. Przykłady:
| Kod | Wynik |
|---|---|
|
|
|
|
|
|
|
|
Jeśli endIndexparametr nie jest określony (co jest możliwe), to podłańcuch jest pobierany od znaku w punkcie beginIndex do końca łańcucha.
repeat(int n)metoda
Metoda repeat po prostu powtarza bieżące nczasy łańcucha. Przykład:
| Kod | Wynik |
|---|---|
|
|
|
|
|
|
|
|
replace(chat oldChar, char newChar)metoda
Metoda replace()zwraca nowy ciąg znaków, w którym wszystkie znaki oldCharsą zastępowane znakiem newChar. Nie zmienia to długości łańcucha. Przykład:
| Kod | Wynik |
|---|---|
|
|
|
|
|
|
|
|
replaceFirst()i replaceAll()metody
Metoda replaceAll()zastępuje wszystkie wystąpienia jednego podłańcucha innym. Metoda replaceFirst()zastępuje pierwsze wystąpienie przekazanego podciągu określonym podciągiem. Ciąg, który ma zostać zastąpiony, jest określony przez wyrażenie regularne. Zagłębimy się w wyrażenia regularne w zadaniu Java Multithreading .
Przykłady:
| Kod | Wynik |
|---|---|
|
|
|
|
|
|
|
|
toLowerCase() and toUpperCase()metody
Poznaliśmy te metody, gdy po raz pierwszy dowiedzieliśmy się o wywoływaniu metod klasy String.
trim()metoda
Metoda trim()usuwa początkowe i końcowe spacje z łańcucha. Nie dotyka spacji znajdujących się wewnątrz łańcucha (tj. nie na początku ani na końcu). Przykłady:
| Kod | Wynik |
|---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION