Ce face String.take
take(3) returnează primele 3 caractere, takeLast(3) ultimele 3. drop(3) returnează textul fără primele 3 caractere, iar dropLast(3) fără ultimele 3.
Spre deosebire de substring, aceste funcții nu aruncă excepție când n este mai mare decât textul: "Ana".take(10) este pur și simplu "Ana", iar "Ana".drop(10) este textul gol. Un n negativ aruncă însă IllegalArgumentException.
Parametri
| Parametru | Descriere |
|---|---|
n |
Numărul de caractere luate sau sărite (0 sau mai mult). |
Ce returnează
Un String nou.
Exemple
Exemplul 1: Primele, ultimele și restul
Aceeași poziție, patru funcții diferite.
fun main() {
val text = "Constanța"
println(text.take(3))
println(text.takeLast(3))
println(text.drop(3))
println(text.dropLast(3))
}
Rezultat
Con
nța
stanța
Consta
Exemplul 2: Previzualizarea unui mesaj
Mesajele lungi sunt scurtate la 20 de caractere; cele scurte rămân întregi, fără excepție.
fun main() {
val mesaje = listOf("Ne vedem mâine la 10 în fața universității", "Mersi!")
for (m in mesaje) {
val previzualizare = if (m.length > 20) m.take(20) + "..." else m
println(previzualizare)
}
println("Ana".take(10))
}
Rezultat
Ne vedem mâine la 10...
Mersi!
Ana
Exemplul 3: Ascunderea unui număr de card
Afișăm doar ultimele 4 cifre, restul devine stele.
fun main() {
val card = "4111222233334444"
val ascuns = "*".repeat(card.length - 4) + card.takeLast(4)
println(ascuns)
}
Rezultat
************4444
Greșeli frecvente
- Folosești
substring(0, 20)pentru previzualizare și programul se oprește la mesajele scurte.take(20)este sigur. - Confunzi
dropcudropLast:dropelimină de la început,dropLastde la final.
Comenzi înrudite
String.substring: Returnează bucata de text dintre două poziții: de la startIndex inclusiv până la endIndex exclusiv.String.first: first returnează primul caracter al textului (sau primul care respectă o condiție), last ultimul.String.chunked: chunked taie textul în bucăți de lungime fixă; windowed ia „ferestre” care se pot suprapune.Iterable.take: take(n) întoarce primele n elemente, iar drop(n) întoarce tot ce rămâne după ce sari peste primele n.