Char.isUpperCase în Kotlin

Caractere (Char) Kotlin 1.0 (uppercaseChar: 1.5)

Verifică dacă un caracter este literă mare sau mică și îl transformă cu uppercaseChar / lowercaseChar.

Sintaxă
fun Char.isUpperCase(): Boolean
fun Char.isLowerCase(): Boolean
fun Char.uppercaseChar(): Char
fun Char.lowercaseChar(): Char
fun Char.uppercase(): String

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 -Werror codul nu compilează. Scrie c.uppercaseChar().
  • Folosești !c.isUpperCase() ca să verifici litere mici. Cifrele și semnele trec și ele; folosește isLowerCase().

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).