String.uppercase în Kotlin

uppercase transformă textul în majuscule, lowercase în litere mici, independent de limba sistemului.

Sintaxă
fun String.uppercase(): String
fun String.lowercase(): String
fun String.uppercase(locale: Locale): String

Ce face String.uppercase

uppercase() returnează textul cu toate literele mari, iar lowercase() cu toate literele mici. Cifrele și semnele rămân la fel. Diacriticele românești se transformă corect: ș devine Ș.

Fără argument, cele două funcții folosesc regulile neutre (Locale.ROOT), deci dau același rezultat pe orice calculator. Dacă ai nevoie de regulile unei limbi anume (de exemplu turca, unde i mare este İ), dă un Locale ca argument.

Funcțiile vechi toUpperCase() și toLowerCase() sunt depreciate din Kotlin 1.5. Pentru prima literă mare folosește replaceFirstChar.

Ce returnează

Un String nou, cu literele transformate.

Exemple

Exemplul 1: Majuscule și litere mici

Diacriticele se transformă și ele; cifrele rămân neschimbate.

fun main() {
    val oras = "Târgu Mureș"
    println(oras.uppercase())
    println(oras.lowercase())
    println("Cod: ro42ab".uppercase())
}

Rezultat

TÂRGU MUREȘ
târgu mureș
COD: RO42AB

Exemplul 2: Comparare fără să conteze literele mari

Transformi ambele texte în litere mici înainte de comparare. (O variantă mai scurtă este equals(alt, ignoreCase = true).)

fun main() {
    val raspuns = "BUCUREȘTI"
    val corect = "București"
    println(raspuns == corect)
    println(raspuns.lowercase() == corect.lowercase())
}

Rezultat

false
true

Exemplul 3: Normalizarea adreselor de e-mail

Adresele scrise diferit devin identice după trim și lowercase, așa că toSet păstrează doar una.

fun main() {
    val emailuri = listOf("Ana@Exemplu.ro", " ana@exemplu.ro", "ION@exemplu.ro")
    val unice = emailuri.map { it.trim().lowercase() }.toSet()
    println(unice)
}

Rezultat

[ana@exemplu.ro, ion@exemplu.ro]

Greșeli frecvente

  • Folosești toUpperCase() din tutoriale vechi. Este depreciat; cu -Werror codul nici nu compilează. Folosește uppercase().
  • Aștepți ca uppercase() să modifice variabila. Textul este imuabil; folosește rezultatul returnat.

Comenzi înrudite

  • String.replaceFirstChar: Înlocuiește primul caracter al textului cu rezultatul unei funcții; folosit mai ales pentru a face prima literă mare.
  • String.equals: equals compară două texte (opțional fără să conteze literele mari); compareTo le compară alfabetic.
  • Char.isUpperCase: Verifică dacă un caracter este literă mare sau mică și îl transformă cu uppercaseChar / lowercaseChar.