String.replaceFirstChar în Kotlin

Înlocuiește primul caracter al textului cu rezultatul unei funcții; folosit mai ales pentru a face prima literă mare.

Sintaxă
fun String.replaceFirstChar(transform: (Char) -> Char): String
fun String.replaceFirstChar(transform: (Char) -> CharSequence): String

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; scrie replaceFirstChar { it.uppercase() }.
  • Te aștepți ca restul literelor să devină mici. "iAȘI" devine "IAȘI"; aplică întâi lowercase() 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.