Jak działa substring Stringa?
Tworzenie podłańcucha znaków poprzez zwrócenie części znaków z istniejącego łańcucha znaków. Haczyk, na który trzeba uważać

Czym jest substring?
String
z angielskiego można przetłumaczyć jako łańcuch. W Javie jest to obiekt, który reprezentuje łańcuch znaków. Z kolei char
to prymitywny typ danych reprezentujący pojedynczy znak.
Tablica znaków char
działa tak samo jak łańcuch znaków String
w Javie:
// Tworzenie łańcucha znaków z tablicy znaków
char[] characters = {'j', 'a', 'v', 'o', 'w', 'i', 'e', 'c', '.', 'p', 'l'};
String javowiecpl = new String(characters);
// Ten zapis daje taki sam rezultat
String javowiecpl = "javowiec.pl";
Substring to operacja polegająca na stworzeniu nowego łańcucha znaków, tzw. podłańcucha, poprzez zwrócenie części znaków z istniejącego łańcucha znaków. Możemy ją wykonać poprzez wywołanie jednej z dwóch metod substring
na obiekcie String
. Różnią się liczbą parametrów:
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)
Działanie metody substring
Metoda substring
może przyjmować tylko jeden parametr:
beginIndex
będący początkowym indeksem, od którego rozpoczyna się podłańcuch. Jest to indeks pierwszego znaku
Indeks liczymy od 0! Liczenie od 1 jest błędem!

substring
klasy java.lang.String
z jednym parametrem beginIndex
Metoda substring
z jednym parametrem tworzy podłańcuch od indeksu początkowego do końca łańcucha znaków. Przykłady:
"agrest".substring(2); // Zwróci String "rest", bo 'r' to 2. znak
"kultura".substring(3); // Zwróci String "tura", bo 't' to 3. znak
"javowiec.pl".substring(9); // Zwróci String "pl", bo 'p' to 9. znak
Metoda substring
może również przyjmować dwa parametry:
beginIndex
będący początkowym indeksem, od którego rozpoczyna się podłańcuch. Jest to indeks pierwszego znakuendIndex
będący końcowym indeksem, w którym podłańcuch się kończy. Jest to indeks ostatniego znaku, który nie jest włączany do podłańcucha!

substring
klasy java.lang.String
z dwoma parametrami: beginIndex
i endIndex
Przykłady:
"monitor".substring(4, 7); // Zwróci String "tor"
"programowanie".substring(3, 7); // Zwróci String "gram"
"javowiec.pl".substring(0, 8); // Zwróci String "javowiec"
Zasada działania tej metody jest trochę podchwytliwa, więc wytłumaczę ją powoli na przykładzie "programowanie".substring(3, 7);
:
- Znak nr 3 to 'g', licząc indeks od 0
- Znak nr 7 to 'o', ale znak z końcowym indeksem nie jest włączany do podłańcucha znaków. Oznacza to, że ostatnim znakiem zawierającym się w podłańcuchu będzie znak nr 6, czyli 'm'.
- Powstaje podłańcuch znaków: "gram"
Wyjątek StringIndexOutOfBoundsException
Wyjątek StringIndexOutOfBoundsException
zostanie wyrzucony gdy:
- Początkowy indeks jest liczbą ujemną
- Końcowy indeks jest mniejszy od początkowego indeksu
- Początkowy lub końcowy indeks jest większy od całkowitej liczby znaków w łańcuchu
// Ten zapis wyrzuci wyjątek,
// ponieważ całkowita długość łańcucha "javowiec.pl" to 11
"javowiec.pl".substring(9, 12);
// Wyjątek z konsoli
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 9, end 12, length 11
GitHub
Kod źródłowy jest udostępniony na GitHubie. Poniżej link 🙂
Podsumowanie
Substring to operacja polegająca na stworzeniu nowego łańcucha znaków, tzw. podłańcucha, poprzez zwrócenie części znaków z istniejącego łańcucha znaków.
Klasa java.lang.String
posiada dwie metody substring
. Pierwsza posiada jeden parametr, będący początkowym indeksem znaku podłańcucha. Druga posiada dwa parametry, pierwszy będący początkowym indeksem znaku podłańcucha i drugi będący końcowym indeksem znaku podłańcucha.
Ważne jest, abyś zapamiętał, że końcowy indeks nie jest włączany do podłańcucha, zaś sam indeks liczymy od 0.
Jednym z zastosowań metody substring
jest sprawdzanie prefiksów lub sufiksów w łańcuchu bądź określanie czy dany łańcuch jest palindromem.
Liczba komentarzy:
Zaloguj się lub dołącz do społeczności Javowców, aby móc uczestniczyć w dyskusji 🙂