String.repeat în Kotlin

repeat construiește un text din n copii ale textului; plus (operatorul +) lipește două texte.

Sintaxă
fun CharSequence.repeat(n: Int): String
operator fun String.plus(other: Any?): String   // a + b

Ce face String.repeat

"ab".repeat(3) returnează "ababab". Cu n = 0 rezultatul este textul gol; un n negativ aruncă IllegalArgumentException. Este util pentru linii de separare și pentru desene simple în consolă.

Operatorul + apelează funcția plus: "Bună " + nume creează un text nou. Partea din dreapta poate fi de orice tip; este transformată automat în text. În cod Kotlin obișnuit, string templates ("Bună $nume") sunt de obicei mai ușor de citit.

Fiecare + creează un obiect nou. Pentru texte construite în bucle mari folosește buildString.

Parametri

Parametru Descriere
n De câte ori se repetă textul (0 sau mai mult).

Ce returnează

Un String nou.

Exemple

Exemplul 1: Linii de separare

repeat desenează o linie de lungimea titlului.

fun main() {
    val titlu = "Raport lunar"
    println(titlu)
    println("=".repeat(titlu.length))
    println("-*".repeat(5))
}

Rezultat

Raport lunar
============
-*-*-*-*-*

Exemplul 2: Lipire cu + și cu plus

Numerele din dreapta lui + sunt transformate în text. După un text, + lipește, nu adună: "Total: " + 1 + 2 dă „Total: 12”. Cu paranteze, numerele se adună întâi.

fun main() {
    val nume = "Ana"
    println("Bună, " + nume + "!")
    println("Nota: ".plus(10))
    println("Total: " + 1 + 2)
    println("Total: " + (1 + 2))
}

Rezultat

Bună, Ana!
Nota: 10
Total: 12
Total: 3

Exemplul 3: Grafic din stele

Fiecare oraș primește atâtea stele câte puncte are.

fun main() {
    val puncte = mapOf("Iași" to 5, "Cluj" to 3, "Sibiu" to 7)
    for ((oras, p) in puncte) {
        println(oras.padEnd(6) + "*".repeat(p) + " ($p)")
    }
}

Rezultat

Iași  ***** (5)
Cluj  *** (3)
Sibiu ******* (7)

Greșeli frecvente

  • Scrii "-" * 10 ca în Python. Kotlin nu are operatorul * pentru text; folosește "-".repeat(10).
  • Scrii "Total: " + a + b și aștepți suma. După primul text, + lipește; pune paranteze: "Total: " + (a + b).

Comenzi înrudite

  • String.padStart: Completează textul la o lungime dată, adăugând un caracter la început (padStart) sau la final (padEnd).
  • buildString: buildString construiește un text din bucăți cu append și appendLine, apoi îl returnează ca String.
  • String.reversed: Returnează textul cu caracterele în ordine inversă, de la ultimul la primul.