Ce face String.first
text.first() este primul caracter, echivalent cu text[0], iar text.last() este ultimul, fără să calculezi length - 1. Cu o condiție, first { it.isDigit() } returnează primul caracter care o respectă.
Pe un text gol, sau când niciun caracter nu respectă condiția, funcțiile aruncă NoSuchElementException. Variantele firstOrNull() și lastOrNull() returnează în schimb null.
Parametri
| Parametru | Descriere |
|---|---|
predicate |
Opțional: condiția pe care trebuie să o respecte caracterul. |
Ce returnează
Un Char (sau Char? pentru variantele OrNull).
Exemple
Exemplul 1: Inițiale
Luăm prima literă din fiecare cuvânt al numelui.
fun main() {
val nume = "Ana Maria Popescu"
val initiale = nume.split(" ").map { it.first() }.joinToString("")
println(initiale)
println("Ultima literă: ${nume.last()}")
}
Rezultat
AMP
Ultima literă: u
Exemplul 2: Primul caracter care respectă o condiție
Găsim prima cifră și ultima literă mare dintr-un cod.
fun main() {
val cod = "abc7XY2z"
println(cod.first { it.isDigit() })
println(cod.last { it.isUpperCase() })
}
Rezultat
7
Y
Exemplul 3: Text gol fără excepție
firstOrNull returnează null pe textul gol, iar Elvis dă o valoare implicită.
fun main() {
val raspunsuri = listOf("Da", "", "nu")
for (r in raspunsuri) {
val litera = r.firstOrNull()?.uppercaseChar() ?: '-'
println("\"$r\" -> $litera")
}
}
Rezultat
"Da" -> D
"" -> -
"nu" -> N
Greșeli frecvente
- Apelezi
first()pe un text care poate fi gol, de exemplu un rând citit. Programul se oprește cuNoSuchElementException; foloseștefirstOrNull(). - Compari
text.first() == "A". Rezultatul esteChar; scrie'A'.
Comenzi înrudite
String.length: length dă numărul de caractere dintr-un text, iar text[i] (get) returnează caracterul de la poziția i.String.take: take ia primele n caractere, takeLast ultimele n, iar drop sare peste primele n și returnează restul.Iterable.first: first/last întorc primul sau ultimul element (sau primul care îndeplinește o condiție); variantele OrNull dau null în loc de excepție.Char.isUpperCase: Verifică dacă un caracter este literă mare sau mică și îl transformă cu uppercaseChar / lowercaseChar.