„Verificați alte lucruri pe care le puteți face cu subșiruri:”

8) Cum găsesc un subșir?

Metodele indexOf și lastIndexOf vă permit căutați șiruri în șiruri. Există 4 versiuni ale acestor metode:

Metoda indexOf caută un șir într-un șir specificat. Metoda poate căuta șirul de la începutul șirului specificat sau pornind de la un index (a doua metodă). Dacă șirul este găsit, atunci metoda returnează indexul primului său caracter; dacă nu este găsit, atunci returnează -1.

Metoda(e) Exemplu(e)
int indexOf(String str)
String s = "Good news, everyone!";
int index = s.indexOf ("ne");
Rezultat:

index == 5
int indexOf(String str, int from)
String s = "Good news, everyone!";
int index = s.indexOf ("ne", 7);
Rezultat:

index == 16

„ Metoda lastIndexOf caută șirul specificat înapoi de la sfârșitul șirului nostru! Această metodă poate căuta un șir de la sfârșitul șirului nostru sau pornind de la un index (a doua metodă). Dacă șirul este găsit, atunci metoda returnează indexul primului său caracter; dacă nu este găsit, atunci returnează -1."

Metoda(e) Exemplu(e)
int lastIndexOf(String str)
String s = "Good news, everyone!";
int index = s.lastIndexOf("ne");
Rezultat:

index == 17
int lastIndexOf(String str, int from)
String s = "Good news, everyone!";
int index = s.lastIndexOf("ne", 15);
Rezultat:

index == 5

9) Cum înlocuiesc o parte dintr-un șir cu un alt șir?

„Există trei metode pentru asta”.

Metoda de înlocuire înlocuiește toate aparițiile unui anumit caracter cu un alt caracter.

Metoda  replaceAll  înlocuiește toate aparițiile unui subșir cu un alt șir.

Metoda  replaceFirst  înlocuiește prima apariție a unui subșir trecut cu un șir specificat.

Metoda(e) Exemplu(e)
String replace(char oldChar, char newChar)
String s = "Good news, everyone!";
String s2 = s.replace>('o', 'a');
Rezultat:

s2 == "Gaad news, everyane!";
String replaceAll(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceAll ("ne", "_");
Rezultat:

s2 == "Good _ws, everyo_!";
String replaceFirst(String regex, String replacement)
String s = "Good news, everyone!";
String s2 = s.replaceFirst ("ne", "_");
Rezultat:

s2 == "Good _ws everyone!";

"Dar trebuie să fii atent cu acestea. În ultimele două metode ( replaceAll și replaceFirst ), șirul pe care îl căutăm este transmis ca o expresie regulată, nu un simplu șir. Dar despre asta voi vorbi mai târziu."