Ce face String.replace
replace(vechi, nou) caută toate aparițiile lui vechi și le înlocuiește cu nou. Textul original rămâne neschimbat; primești un String nou. Cu ignoreCase = true, căutarea nu ține cont de literele mari.
Varianta cu Char înlocuiește caracter cu caracter, iar varianta cu Regex folosește o expresie regulată (vezi Regex.replace). Dacă vrei să înlocuiești doar prima apariție, există replaceFirst.
Parametri
| Parametru | Descriere |
|---|---|
oldValue / oldChar |
Ce se caută. |
newValue / newChar |
Cu ce se înlocuiește. Un text gol înseamnă ștergere. |
ignoreCase |
Dacă true, nu contează literele mari sau mici. |
Ce returnează
Un String nou cu înlocuirile făcute.
Exemple
Exemplul 1: Înlocuire de cuvinte și ștergere
Toate aparițiile sunt înlocuite. Înlocuirea cu text gol șterge spațiile.
fun main() {
val mesaj = "Trenul de Iași pleacă. Trenul de Cluj întârzie."
println(mesaj.replace("Trenul", "Autobuzul"))
println("0722 123 456".replace(" ", ""))
}
Rezultat
Autobuzul de Iași pleacă. Autobuzul de Cluj întârzie.
0722123456
Exemplul 2: Caractere și ignoreCase
Virgula zecimală devine punct, ca să putem converti cu toDouble. Al doilea apel găsește și „LEI”, și „lei”.
fun main() {
val pret = "12,50".replace(',', '.').toDouble()
println(pret * 2)
println("10 LEI și 5 lei".replace("lei", "RON", ignoreCase = true))
}
Rezultat
25.0
10 RON și 5 RON
Exemplul 3: Eliminarea diacriticelor dintr-un slug
Înlocuim pe rând fiecare literă cu diacritice, apoi spațiile cu cratimă.
fun main() {
val titlu = "Știri din Brașov și Timișoara"
val inlocuiri = mapOf('ă' to 'a', 'â' to 'a', 'î' to 'i', 'ș' to 's', 'ț' to 't')
var slug = titlu.lowercase()
for ((cu, fara) in inlocuiri) {
slug = slug.replace(cu, fara)
}
println(slug.replace(' ', '-'))
}
Rezultat
stiri-din-brasov-si-timisoara
Greșeli frecvente
- Apelezi
text.replace("a", "b")fără să păstrezi rezultatul. String-ul nu se modifică; scrietext = text.replace(...)sau folosește o variabilă nouă. - Crezi că
replace(".", "")e expresie regulată și șterge tot. Varianta cuStringeste literală: șterge doar punctele.
Comenzi înrudite
Regex.replace: replace înlocuiește toate potrivirile tiparului (cu text fix sau calculat); split taie textul la fiecare potrivire.String.removePrefix: Elimină un prefix de la început, un sufix de la final sau ambele, doar dacă ele chiar există.String.filter: filter păstrează din text doar caracterele care respectă o condiție; count numără caracterele care o respectă.String.trim: trim elimină spațiile albe de la începutul și sfârșitul textului; trimStart doar de la început, trimEnd doar de la final.