Ce face Char.isDigit
Un Char este un singur caracter, scris între ghilimele simple: 'a', '7', ' '. Funcțiile acestea îți spun ce fel de caracter este: isDigit() pentru cifre, isLetter() pentru litere (inclusiv ă, î, ș, ț), isLetterOrDigit() pentru oricare dintre ele, isWhitespace() pentru spații, tab-uri și rânduri noi.
Verificările folosesc standardul Unicode, deci funcționează și pentru litere din alte alfabete. Le folosești de obicei în filter, all, any sau count, pentru a valida ori curăța un text caracter cu caracter.
Ce returnează
Boolean.
Exemple
Exemplul 1: Ce fel de caracter este
Literele cu diacritice sunt recunoscute ca litere; semnul - nu este nici literă, nici cifră.
fun main() {
for (c in listOf('a', 'Ș', '7', ' ', '-', '\t')) {
println("'$c': cifră=${c.isDigit()}, literă=${c.isLetter()}, literă/cifră=${c.isLetterOrDigit()}, spațiu=${c.isWhitespace()}")
}
}
Rezultat
'a': cifră=false, literă=true, literă/cifră=true, spațiu=false
'Ș': cifră=false, literă=true, literă/cifră=true, spațiu=false
'7': cifră=true, literă=false, literă/cifră=true, spațiu=false
' ': cifră=false, literă=false, literă/cifră=false, spațiu=true
'-': cifră=false, literă=false, literă/cifră=false, spațiu=false
' ': cifră=false, literă=false, literă/cifră=false, spațiu=true
Exemplul 2: Statistica unui text
Numărăm cu count literele, cifrele și spațiile dintr-o adresă.
fun main() {
val adresa = "Str. Ștefan cel Mare 24, ap. 5"
println("Litere: ${adresa.count { it.isLetter() }}")
println("Cifre: ${adresa.count { it.isDigit() }}")
println("Spații: ${adresa.count { it.isWhitespace() }}")
println("Altele: ${adresa.count { !it.isLetterOrDigit() && !it.isWhitespace() }}")
}
Rezultat
Litere: 18
Cifre: 3
Spații: 6
Altele: 3
Exemplul 3: Validarea unui nume de utilizator
Numele trebuie să înceapă cu literă și să conțină doar litere, cifre sau _.
fun esteValid(nume: String): Boolean =
nume.isNotEmpty() && nume[0].isLetter() && nume.all { it.isLetterOrDigit() || it == '_' }
fun main() {
for (n in listOf("ana_93", "9ion", "maria pop", "ștefan")) {
println("$n: ${esteValid(n)}")
}
}
Rezultat
ana_93: true
9ion: false
maria pop: false
ștefan: true
Greșeli frecvente
- Verifici cifre cu
c in '0'..'9'și literele cuc in 'a'..'z'. Intervalul de litere ratează literele mari și diacriticele;isLetter()le include. - Apelezi
isDigit()pe unString. Funcția este pentru unChar; pentru tot textul foloseștetext.all { it.isDigit() }.
Comenzi înrudite
Char.isUpperCase: Verifică dacă un caracter este literă mare sau mică și îl transformă cu uppercaseChar / lowercaseChar.Char.digitToInt: digitToInt transformă caracterul ‘7’ în numărul 7; code dă codul Unicode al caracterului (‘A’.code este 65).String.filter: filter păstrează din text doar caracterele care respectă o condiție; count numără caracterele care o respectă.String.all: all verifică dacă toate caracterele respectă o condiție, any dacă măcar unul o respectă.