1. Porównanie ciągów znaków
Porównanie jest jedną z najczęstszych czynności wykonywanych przy użyciu łańcuchów. Klasa String ma ponad dziesięć różnych metod, które służą do porównywania ciągów znaków z ciągami znaków. Poniżej przyjrzymy się siedmiu głównym.
Metody | Opis |
---|---|
|
Ciągi są uważane za równe, jeśli wszystkie ich znaki są zgodne. |
|
Porównuje ciągi znaków, ignorując wielkość liter (rozmiar). |
|
Porównuje ciągi leksykograficznie. Zwraca 0, jeśli łańcuchy są równe. Liczba jest mniejsza od zera, jeśli bieżący ciąg jest mniejszy niż ciąg parametru. Liczba jest większa od zera, jeśli bieżący ciąg znaków jest większy niż ciąg parametrów |
|
Porównuje ciągi leksykograficznie, ignoruje wielkość liter. Zwraca 0, jeśli łańcuchy są równe. Liczba jest mniejsza od zera, jeśli bieżący ciąg jest mniejszy niż ciąg parametru. Liczba jest większa od zera, jeśli bieżący ciąg znaków jest większy niż ciąg parametrów |
|
Porównuje części łańcuchów |
|
Sprawdza, czy bieżąca linia zaczyna się od ciągu znakówprefix |
|
Sprawdza, czy bieżąca linia kończy się liniąsuffix |
Powiedzmy, że chcesz napisać program, który prosi użytkownika o podanie ścieżki do pliku i sprawdza, co to za plik, patrząc na jego rozszerzenie. Wtedy kod takiego programu mógłby wyglądać mniej więcej tak:
Kod | Notatki |
---|---|
|
Tworzenie obiektu Scanner Odczytanie napisu z konsoli Sprawdzenie, czy napis path kończy się podanym napisem |
2. Wyszukaj podciągi
Drugą najpopularniejszą operacją po porównywaniu łańcuchów jest wyszukiwanie jednego ciągu w drugim. Klasa String ma również kilka metod:
Metody | Opis |
---|---|
|
Wyszukuje ciąg znaków str w bieżącym wierszu. Zwraca indeks pierwszego znaku napotkanego ciągu. |
|
Wyszukuje ciąg znaków str w bieżącym wierszu, pomijając index pierwsze znaki. Zwraca indeks znalezionego wystąpienia. |
|
Wyszukuje ciąg str w bieżącym ciągu od końca. Zwraca indeks pierwszego wystąpienia. |
|
Wyszukuje ciąg str w bieżącym ciągu od końca, pomijając index pierwsze znaki. |
|
Sprawdza, czy bieżący ciąg pasuje do wzorca podanego w wyrażeniu regularnym. |
Metody indexOf(String)
i indexOf(String, index)
są często używane w parach. Pierwszy pozwala znaleźć pierwsze wystąpienie danego podłańcucha w bieżącym ciągu. A druga metoda pozwala znaleźć drugą, trzecią itd. wystąpień, pomijając pierwsze znaki indeksu.
Załóżmy, że mamy adres URL podobny do tego: „ https://domen.ru/about/reviews ” i chcemy zastąpić nazwę domeny codegym.cc . Domeny w adresach URL mogą być różne, 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 Odczytaj ciąg z konsoli Pobierz indeks pierwszego wystąpienia ciągu // Pobierz indeks pierwszego wystąpienia ciągu / , ale zwracaj uwagę tylko na znaki // . Otrzymujemy ciąg od początku i końca ze znakami // Otrzymujemy ciąg od / i do końca. Sklejamy linie i nową domenę. |
Metody lastIndexOf(String)
i lastIndexOf(String, index)
działają dokładnie w ten sam sposób, tylko wyszukiwanie odbywa się od końca łańcucha do początku.
3. Utwórz podciągi
Oprócz porównywania łańcuchów i znajdowania podłańcuchów istnieje jeszcze jedna bardzo popularna czynność - pobieranie podłańcucha z łańcucha. W poprzednim przykładzie właśnie widziałeś wywołanie metody substring()
, które zwróciło część łańcucha.
Oto lista 8 metod uzyskiwania podciągów z bieżącego ciągu:
Metody | Opis |
---|---|
|
Zwraca podłańcuch określony przez interwał znaków beginIndex..endIndex . |
|
Powtarza liczbę bieżących linii |
|
Zwraca nowy ciąg znaków: zastępuje znak oldChar znakiemnewChar |
|
Zamienia bieżący ciąg na podciąg określony przez wyrażenie regularne. |
|
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 krótki opis istniejących metod:
metodasubstring(int beginIndex, int endIndex)
Metoda substring
zwraca nowy ciąg, który składa się ze znaków bieżącego ciągu, zaczynając od znaku o numerze beginIndex
i kończąc na endIndex
. Podobnie jak w przypadku wszystkich interwałów w Javie, znak z liczbą endIndex
nie jest uwzględniany w interwale. Przykłady:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
Jeśli parametr endIndex
nie jest określony (a jest to możliwe), podłańcuch jest pobierany od znaku beginIndex do końca łańcucha.
metodarepeat(int n)
Metoda repeat po prostu powtarza bieżące n
czasy linii. Przykład:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
metodareplace(char oldChar, char newChar)
Metoda replace()
zwraca nowy łańcuch, w którym wszystkie znaki oldChar
są zastępowane przez znak newChar
. Długość łańcucha się nie zmienia. Przykład:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
Metody replaceFirst()
ireplaceAll()
Metoda replaceAll()
zastępuje wszystkie wystąpienia jednego podciągu innym. Metoda replaceFirst()
zastępuje pierwsze wystąpienie przekazanego podciągu podanym podłańcuchem. Łańcuch, który ma zostać zastąpiony, jest określany za pomocą wyrażenia regularnego. Przeanalizujemy wyrażenia regularne w zadaniu Java Multithreading .
Przykłady:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
MetodytoLowerCase() и toUpperCase()
Zetknęliśmy się z tymi metodami, kiedy dopiero po raz pierwszy nauczyliśmy się wywoływać metody klasy String
.
metodatrim()
Metoda trim()
usuwa spacje z łańcucha od początku i od końca łańcucha. Nikt nie dotyka spacji wewnątrz łańcucha. Przykłady:
Kod | Wynik |
---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION