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ć

Jak działa substring Stringa?

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
UWAGA!
Indeks liczymy od 0! Liczenie od 1 jest błędem!
Implementacja metody 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 znaku
  • endIndex 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!
Implementacja metody 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 🙂

javowiec-pl-java/jak-dziala-substring-stringa at main · JavowiecPL/javowiec-pl-java
Gotowe projekty z kategorii Java stworzone na potrzeby postów publikowanych na blogu Javowiec.pl - javowiec-pl-java/jak-dziala-substring-stringa at main · JavowiecPL/javowiec-pl-java

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.

Rozwiąż Quiz i utrwal wiedzę

Liczba komentarzy:

Zaloguj się lub dołącz do społeczności Javowców, aby móc uczestniczyć w dyskusji 🙂