Ce face String.replaceFirstChar
replaceFirstChar { ... } primește primul caracter în lambda (ca it) și pune în locul lui ce returnezi. Restul textului rămâne neschimbat. Pe un text gol nu face nimic.
Cel mai des este folosit pentru a scrie cu majusculă prima literă: text.replaceFirstChar { it.uppercase() }. Este înlocuitorul funcției depreciate capitalize(). Pentru opusul (prima literă mică) folosește it.lowercase().
Parametri
| Parametru | Descriere |
|---|---|
transform |
Funcția care primește primul caracter și returnează un Char sau un text care îl înlocuiește. |
Ce returnează
Un String nou cu primul caracter înlocuit.
Exemple
Exemplul 1: Prima literă mare
Doar primul caracter se schimbă; restul literelor rămân cum erau.
fun main() {
println("iași".replaceFirstChar { it.uppercase() })
println("ștefan cel mare".replaceFirstChar { it.uppercase() })
println("".replaceFirstChar { it.uppercase() })
}
Rezultat
Iași
Ștefan cel mare
Exemplul 2: Fiecare cuvânt cu majusculă
Împărțim textul în cuvinte, facem prima literă mare la fiecare, apoi le unim la loc.
fun main() {
val nume = "maria ioana popescu"
val frumos = nume.split(" ").joinToString(" ") { cuvant ->
cuvant.replaceFirstChar { it.uppercase() }
}
println(frumos)
}
Rezultat
Maria Ioana Popescu
Exemplul 3: Prima literă mică pentru un nume de variabilă
Lambda poate returna și un Char, de exemplu cu lowercaseChar().
fun main() {
val clase = listOf("Student", "NotaFinala", "Oras")
for (c in clase) {
println(c.replaceFirstChar { it.lowercaseChar() })
}
}
Rezultat
student
notaFinala
oras
Greșeli frecvente
- Folosești
capitalize(). Este depreciată din Kotlin 1.5; scriereplaceFirstChar { it.uppercase() }. - Te aștepți ca restul literelor să devină mici.
"iAȘI"devine"IAȘI"; aplică întâilowercase()dacă vrei restul cu litere mici.
Comenzi înrudite
String.uppercase: uppercase transformă textul în majuscule, lowercase în litere mici, independent de limba sistemului.Char.isUpperCase: Verifică dacă un caracter este literă mare sau mică și îl transformă cu uppercaseChar / lowercaseChar.String.split: Împarte un text în bucăți după un separator și returnează o listă de String-uri.