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 Scanner obiekt Odczytaj linię z konsoli Sprawdź, czy ciąg path koń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 str w bieżącym ciągu. Zwraca indeks pierwszego znaku pierwszego wystąpienia. |
|
Wyszukuje ciąg str w bieżącym ciągu, pomijając pierwsze index znaki. Zwraca indeks wystąpienia. |
|
Wyszukuje ciąg str w bieżącym ciągu, zaczynając od końca. Zwraca indeks pierwszego wystąpienia. |
|
Wyszukuje ciąg str w bieżącym ciągu od końca, pomijając pierwsze index znaki. |
|
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 oldChar znakiemnewChar |
|
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 substring
zwraca nowy ciąg, który składa się ze znaków w bieżącym ciągu, zaczynając od znaku z indeksem beginIndex
i kończąc na endIndex
. Podobnie jak w przypadku wszystkich interwałów w Javie, znak z indeksem endIndex
nie jest uwzględniany w interwale. Przykłady:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
Jeśli endIndex
parametr 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 n
czasy ł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 oldChar
są 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