String.take în Kotlin

take ia primele n caractere, takeLast ultimele n, iar drop sare peste primele n și returnează restul.

Sintaxă
fun String.take(n: Int): String
fun String.drop(n: Int): String
fun String.takeLast(n: Int): String
fun String.dropLast(n: Int): String

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 drop cu dropLast: drop elimină de la început, dropLast de 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.