Ce face Char.digitToInt
'7'.digitToInt() returnează numărul 7. Dacă caracterul nu este cifră, aruncă IllegalArgumentException; digitToIntOrNull() returnează în schimb null. Există și varianta cu bază: 'f'.digitToInt(16) este 15.
code este o proprietate care dă codul Unicode al caracterului: 'A'.code este 65, 'a'.code este 97, iar '7'.code este 55, nu 7! Înapoi, din cod în caracter, mergi cu Char(65) sau 65.toChar().
digitToInt și code au înlocuit în Kotlin 1.5 vechiul toInt() pe Char, care era ușor de confundat.
Ce returnează
digitToInt: valoarea cifrei. code: codul Unicode (Int).
Exemple
Exemplul 1: Valoarea cifrei față de codul caracterului
Pentru '7', valoarea cifrei este 7, dar codul Unicode este 55.
fun main() {
val c = '7'
println(c.digitToInt())
println(c.code)
println('A'.code)
println('ș'.code)
println(Char(65))
}
Rezultat
7
55
65
537
A
Exemplul 2: Suma cifrelor unui număr
Parcurgem textul numărului și adunăm valoarea fiecărei cifre.
fun main() {
val numar = "2990315226789"
val suma = numar.sumOf { it.digitToInt() }
println("Suma cifrelor: $suma")
println('x'.digitToIntOrNull())
}
Rezultat
Suma cifrelor: 63
null
Exemplul 3: Cifrul lui Cezar
Mutăm fiecare literă cu 3 poziții: calculăm cu code, apoi revenim la caracter cu Char(...).
fun cezar(text: String, pas: Int): String = text.map { c ->
if (c in 'a'..'z') Char('a'.code + (c.code - 'a'.code + pas) % 26) else c
}.joinToString("")
fun main() {
val secret = cezar("ne vedem la noua", 3)
println(secret)
println(cezar(secret, 23))
}
Rezultat
qh yhghp od qrxd
ne vedem la noua
Greșeli frecvente
- Folosești
c.codepentru valoarea unei cifre și obții 55 în loc de 7. Pentru cifre foloseștedigitToInt(). - Scrii
c.toInt()din cod vechi. Este depreciat; alege întrecodeșidigitToInt()după ce ai nevoie.
Comenzi înrudite
Char.isDigit: Verifică tipul unui caracter: cifră (isDigit), literă (isLetter), literă sau cifră, spațiu alb (isWhitespace).Int.toString: toString transformă un număr în text (opțional în altă bază, ca 2 sau 16); toChar dă caracterul cu acel cod.String.toInt: Transformă un text în număr întreg; toInt aruncă excepție la text invalid, toIntOrNull returnează null.