Ce face String.replace
replace(vechi, nou) returnează un șir nou în care toate aparițiile lui vechi sunt înlocuite cu nou. Există două variante: cu caractere ('a', 'b') și cu texte.
Spre deosebire de replaceAll, replace nu folosește expresii regulate: punctul, steluța sau $ sunt căutate exact așa cum le scrii. Pentru înlocuiri simple de text, replace este alegerea corectă, chiar dacă numele sugerează că ar înlocui doar o dată.
Pentru a șterge un text, îl înlocuiești cu șirul gol: s.replace("-", "").
Parametri
| Parametru | Descriere |
|---|---|
vechi / tinta |
Caracterul sau textul căutat. |
nou / inlocuire |
Ce se pune în loc. |
Ce returnează
Un șir nou, cu toate înlocuirile făcute.
Exemple
Exemplul 1: Înlocuiri simple
public class Main {
public static void main(String[] args) {
String data = "2024-05-17";
System.out.println(data.replace('-', '.'));
System.out.println(data.replace("-", ""));
String pret = "12.50 lei";
System.out.println(pret.replace(".", ","));
System.out.println("Ana are mere, Ana are pere".replace("Ana", "Ioana"));
}
}
Rezultat
2024.05.17
20240517
12,50 lei
Ioana are mere, Ioana are pere
Exemplul 2: Eliminarea diacriticelor dintr-un nume de fișier
public class Main {
static String faraDiacritice(String s) {
return s.replace('ă', 'a').replace('â', 'a').replace('î', 'i')
.replace('ș', 's').replace('ț', 't')
.replace('Ă', 'A').replace('Â', 'A').replace('Î', 'I')
.replace('Ș', 'S').replace('Ț', 'T');
}
public static void main(String[] args) {
String titlu = "Țara mea, Brașov și Mărășești";
System.out.println(faraDiacritice(titlu).toLowerCase().replace(" ", "-").replace(",", ""));
}
}
Rezultat
tara-mea-brasov-si-marasesti
Greșeli frecvente
- Crezi că
replaceînlocuiește doar prima apariție. Le înlocuiește pe toate; pentru prima foloseștereplaceFirst. - Folosești
replaceAll(".", ",")pentru a schimba punctul: înlocuiește fiecare caracter, pentru că punctul este special în expresiile regulate. Foloseștereplace.
Comenzi înrudite
String.replaceAll: Înlocuiește toate (replaceAll) sau doar prima (replaceFirst) potrivire a unei expresii regulate.StringBuilder.replace: replace() înlocuiește caracterele dintre două poziții cu un text nou; indexOf() găsește poziția unui subșir.String.strip: Elimină spațiile de la începutul și sfârșitul șirului; stripLeading/stripTrailing doar dintr-o parte.