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-Werrorcodul nici nu compilează. Foloseșteuppercase(). - 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.