Ce face Char.isUpperCase
isUpperCase() returnează true pentru litere mari ('A', 'Ș'), iar isLowerCase() pentru litere mici. Cifrele și semnele nu sunt nici mari, nici mici, deci ambele dau false.
uppercaseChar() returnează varianta mare a caracterului, ca Char, iar lowercaseChar() varianta mică. Caracterele fără variantă (cifre, semne) rămân neschimbate. Există și uppercase() pe Char, care returnează un String, pentru literele rare care devin două caractere.
Funcțiile vechi toUpperCase() și toLowerCase() pe Char sunt depreciate din Kotlin 1.5.
Ce returnează
isUpperCase/isLowerCase: Boolean. uppercaseChar/lowercaseChar: Char.
Exemple
Exemplul 1: Verificare și transformare
Cifra 5 nu este nici mare, nici mică, și rămâne la fel după transformare.
fun main() {
for (c in listOf('a', 'Ș', '5')) {
println("'$c': mare=${c.isUpperCase()}, mică=${c.isLowerCase()}, " +
"-> ${c.uppercaseChar()} / ${c.lowercaseChar()}")
}
}
Rezultat
'a': mare=false, mică=true, -> A / a
'Ș': mare=true, mică=false, -> Ș / ș
'5': mare=false, mică=false, -> 5 / 5
Exemplul 2: Inversarea literelor mari cu cele mici
Fiecare literă mare devine mică și invers; map pe caractere, apoi joinToString.
fun main() {
val text = "Bună Ziua, ANA!"
val inversat = text.map { if (it.isUpperCase()) it.lowercaseChar() else it.uppercaseChar() }
.joinToString("")
println(inversat)
}
Rezultat
bUNĂ zIUA, ana!
Exemplul 3: Separarea cuvintelor în camelCase
Înaintea fiecărei litere mari punem un spațiu, apoi o facem mică.
fun main() {
val nume = "numeComplet"
val rezultat = buildString {
for (c in nume) {
if (c.isUpperCase()) append(' ').append(c.lowercaseChar()) else append(c)
}
}
println(rezultat)
}
Rezultat
nume complet
Greșeli frecvente
- Folosești
c.toUpperCase(). Este depreciată; cu-Werrorcodul nu compilează. Scriec.uppercaseChar(). - Folosești
!c.isUpperCase()ca să verifici litere mici. Cifrele și semnele trec și ele; foloseșteisLowerCase().
Comenzi înrudite
String.uppercase: uppercase transformă textul în majuscule, lowercase în litere mici, independent de limba sistemului.String.replaceFirstChar: Înlocuiește primul caracter al textului cu rezultatul unei funcții; folosit mai ales pentru a face prima literă mare.Char.isDigit: Verifică tipul unui caracter: cifră (isDigit), literă (isLetter), literă sau cifră, spațiu alb (isWhitespace).