Ce face String.all
text.all { it.isDigit() } returnează true dacă fiecare caracter este cifră. text.any { it.isUpperCase() } returnează true dacă cel puțin un caracter este literă mare. Ambele se opresc imediat ce rezultatul este sigur.
Atenție la textul gol: "".all { ... } este true (nu există niciun caracter care să încalce condiția), iar "".any { ... } este false. Opusul lui any este none.
Parametri
| Parametru | Descriere |
|---|---|
predicate |
Condiția verificată pentru fiecare caracter. |
Ce returnează
Boolean.
Exemple
Exemplul 1: Validarea unui cod poștal
Codul poștal românesc are exact 6 cifre. Verificăm lungimea și faptul că toate caracterele sunt cifre.
fun main() {
val coduri = listOf("700259", "70025A", "12345")
for (c in coduri) {
val valid = c.length == 6 && c.all { it.isDigit() }
println("$c: ${if (valid) "valid" else "invalid"}")
}
}
Rezultat
700259: valid
70025A: invalid
12345: invalid
Exemplul 2: Reguli pentru parolă
Fiecare regulă este un any: măcar o literă mare, măcar o cifră, niciun spațiu.
fun main() {
val parola = "Soare2024"
println("Literă mare: ${parola.any { it.isUpperCase() }}")
println("Cifră: ${parola.any { it.isDigit() }}")
println("Fără spații: ${parola.none { it.isWhitespace() }}")
}
Rezultat
Literă mare: true
Cifră: true
Fără spații: true
Exemplul 3: Textul gol
all pe text gol este true, de aceea validarea de mai sus verifică și lungimea.
fun main() {
val gol = ""
println(gol.all { it.isDigit() })
println(gol.any { it.isDigit() })
}
Rezultat
true
false
Greșeli frecvente
- Validezi un câmp numai cu
all { it.isDigit() }. Un câmp gol trece verificarea; adaugăisNotEmpty(). - Folosești
filter { ... }.isNotEmpty()în loc deany. Rezultatul este același, dar any este mai clar și se oprește mai repede.
Comenzi înrudite
String.filter: filter păstrează din text doar caracterele care respectă o condiție; count numără caracterele care o respectă.Char.isDigit: Verifică tipul unui caracter: cifră (isDigit), literă (isLetter), literă sau cifră, spațiu alb (isWhitespace).Iterable.any: any: măcar un element îndeplinește condiția; all: toate o îndeplinesc; none: niciunul nu o îndeplinește.