Ce face String.isEmpty
isEmpty() returnează true doar pentru textul gol "" (lungimea 0). Un text format doar din spații nu este gol pentru isEmpty.
isBlank() returnează true dacă textul este gol sau conține numai spații albe (spații, tab-uri, rânduri noi). Este verificarea potrivită pentru câmpuri completate de utilizator, unde cineva poate apăsa doar bara de spațiu. isNotBlank() este opusul: există cel puțin un caracter vizibil.
Există și isNotEmpty(), precum și variantele pentru text care poate fi null: isNullOrEmpty() și isNullOrBlank().
Ce returnează
Boolean.
Exemple
Exemplul 1: Diferența dintre isEmpty și isBlank
Textul cu trei spații nu este gol (isEmpty dă false), dar este „blank” (isBlank dă true). La fel textul cu un tab (ultimul rând).
fun main() {
val texte = listOf("", " ", "Ana", "\t")
for (t in texte) {
println("\"$t\" -> isEmpty=${t.isEmpty()}, isBlank=${t.isBlank()}")
}
}
Rezultat
"" -> isEmpty=true, isBlank=true
" " -> isEmpty=false, isBlank=true
"Ana" -> isEmpty=false, isBlank=false
" " -> isEmpty=false, isBlank=true
Exemplul 2: Validarea unui formular
Câmpurile care conțin doar spații sunt tratate ca necompletate, datorită lui isBlank.
fun main() {
val formular = mapOf("nume" to "Maria", "oraș" to " ", "telefon" to "")
for ((camp, valoare) in formular) {
if (valoare.isBlank()) {
println("Câmpul „$camp” este obligatoriu")
} else {
println("$camp: $valoare")
}
}
}
Rezultat
nume: Maria
Câmpul „oraș” este obligatoriu
Câmpul „telefon” este obligatoriu
Exemplul 3: isNotBlank pentru a păstra doar rândurile utile
Rândurile goale și cele cu spații sunt eliminate din listă.
fun main() {
val randuri = listOf("pâine", "", "lapte", " ", "ouă")
val produse = randuri.filter { it.isNotBlank() }
println(produse)
println("Produse: ${produse.size}")
}
Rezultat
[pâine, lapte, ouă]
Produse: 3
Greșeli frecvente
- Folosești
isEmpty()pentru a verifica datele introduse de utilizator. Un nume format din spații trece de verificare; foloseșteisBlank(). - Apelezi
isEmpty()pe o variabilăString?. Compilatorul cere apel sigur; foloseșteisNullOrEmpty()sauisNullOrBlank().
Comenzi înrudite
String.trim: trim elimină spațiile albe de la începutul și sfârșitul textului; trimStart doar de la început, trimEnd doar de la final.String.ifBlank: ifBlank înlocuiește un text gol sau doar cu spații cu o valoare implicită; orEmpty transformă null în „”.String.length: length dă numărul de caractere dintr-un text, iar text[i] (get) returnează caracterul de la poziția i.