„Co o tym myślisz, Amigo? Jaka jest najpopularniejsza klasa Java po int?”
„Już dałeś mi spoiler w tytule lekcji, Ellie. Jest String!”
„Rzeczywiście, to spoiler. StringJest używany absolutnie wszędzie. Ma kilka przydatnych metod, które lepiej znać.
„ StringKlasa jest jedyną klasą inną niż typy pierwotne, której literałów można używać w instrukcjach switch; kompilator obsługuje dodawanie łańcuchów znaków i obiekty typu String w specjalny sposób; Stringobiekty są zapisywane w pamięci w specjalny sposób. Zasadniczo klasa Stringjest bardzo klasa specjalna.
„Ponadto Stringklasa ma kilka klas pomocniczych, których celem jest dalsze uproszczenie pracy z ciągami znaków w Javie. Kiedy nauczysz się tego wszystkiego, wiele rzeczy stanie się dla ciebie znacznie łatwiejszych”.
„Nie mogę się doczekać”.
„Cóż, zaczniemy od samego rdzenia tego ekosystemu — organizacji klasy String. Struktura klasy Stringjest w rzeczywistości bardzo prosta: wewnątrz niej znajduje się tablica znaków ( chartablica), która przechowuje wszystkie znaki łańcucha. na przykład tak jest przechowywane słowo „Hello”:
To ważne.
W rzeczywistości nie jest to do końca dokładne. Ponieważ Stringklasa jest bardzo ważna, wykorzystuje wiele optymalizacji, a dane są wewnętrznie przechowywane nie jako tablica znaków, ale po prostu jako tablica bajtów.
Metody klasy String
Klasa Stringma wiele metod: ma tylko 18 konstruktorów! Dlatego poniżej wymienię tylko te najczęściej używane:
| Metody | Opis |
|---|---|
|
Zwraca liczbę znaków w ciągu |
|
Sprawdza, czy ciąg jest pustym ciągiem |
|
Sprawdza, czy łańcuch zawiera tylko białe znaki: spację, tabulator, nową linię itp. |
|
Zwraca znak na pozycji indeksu w ciągu. |
|
Zwraca tablicę znaków (kopii) składających się na łańcuch |
|
Konwertuje ciąg na zestaw bajtów i zwraca tablicę bajtów. |
|
Dzieli ciąg na wiele podciągów. |
|
Łączy ze sobą wiele podciągów |
|
Umieszcza ciąg w puli ciągów. |
"To wygląda bardzo dobrze!"
„Napiszmy program, który konwertuje ścieżkę pliku ze stylu Unix na styl Windows. Unix używa znaku /do oddzielania folderów, podczas gdy Windows używa \znaku.
Rozwiązanie 1. Korzystanie z chartablicy
| Kod | Notatki |
|---|---|
|
Utwórz obiekt Scanner Odczyt linii z konsoli Konwertuj ciąg znaków na tablicę znaków Zapętlaj znaki Jeśli znak to /, zamień go na \. Nie zapomnij o ucieczce. Utwórz nowy ciąg na podstawie tablicy znaków. Wyświetl ciąg. |
Rozwiązanie 2. Korzystanie z metod split()i join():
| Kod | Notatki |
|---|---|
|
Utwórz obiekt Scanner Odczyt wiersza z konsoli Konwertuj ciąg znaków na tablicę ciągów znaków . Znak /jest używany jako separator (dodatkowe dwa ukośniki są wynikiem podwójnej ucieczki). Połącz wszystkie łańcuchy w tablicy strings . The \jest używany jako separator (widzimy, że uciekł). Wyświetl ciąg. |
Rozwiązanie 3. Korzystając z replace(char oldChar, char newChar)metody:
| Kod | Notatki |
|---|---|
|
Stwórz obiekt Scanner Odczyt linii z konsoli Po prostu zastąp jeden znak innym (drugi to znak ucieczki) Wyświetl ciąg znaków. |
„Najbardziej podobało mi się trzecie rozwiązanie. Ale przećwiczę wszystkie trzy”.
"Dobra robota, Amigo. Widzę, że już niecierpliwisz się, aby zastosować swoją nową wiedzę w praktyce. Lekcja się skończyła."
GO TO FULL VERSION