String.padStart în Kotlin

Completează textul la o lungime dată, adăugând un caracter la început (padStart) sau la final (padEnd).

Sintaxă
fun String.padStart(length: Int, padChar: Char = ' '): String
fun String.padEnd(length: Int, padChar: Char = ' '): String

Ce face String.padStart

padStart(5, '0') adaugă zerouri în fața textului până ajunge la 5 caractere: "42" devine "00042". padEnd adaugă caracterele la final. Caracterul implicit este spațiul.

Dacă textul are deja lungimea cerută sau mai mare, este returnat neschimbat (nu se taie nimic). Funcțiile sunt utile pentru numere cu zerouri în față și pentru tabele aliniate în consolă.

Parametri

Parametru Descriere
length Lungimea dorită a rezultatului.
padChar Caracterul de completare; implicit spațiu.

Ce returnează

Un String de lungime cel puțin length.

Exemple

Exemplul 1: Numere de factură cu zerouri în față

Numărul se transformă întâi în text, apoi se completează la 5 cifre.

fun main() {
    for (nr in listOf(7, 42, 1250)) {
        println("Factura FC-${nr.toString().padStart(5, '0')}")
    }
    println("123456".padStart(5, '0'))
}

Rezultat

Factura FC-00007
Factura FC-00042
Factura FC-01250
123456

Exemplul 2: Tabel aliniat în consolă

Numele sunt completate la dreapta, iar sumele la stânga, așa că coloanele se aliniază.

fun main() {
    val salarii = listOf("Ana" to 5200, "Constantin" to 4800, "Ion" to 12000)
    for ((nume, suma) in salarii) {
        println(nume.padEnd(12, '.') + suma.toString().padStart(7) + " lei")
    }
}

Rezultat

Ana.........   5200 lei
Constantin..   4800 lei
Ion.........  12000 lei

Exemplul 3: Ora în format HH:MM

Orele și minutele de o cifră primesc un 0 în față.

fun main() {
    val ore = listOf(9 to 5, 14 to 30, 0 to 0)
    for ((h, m) in ore) {
        println("${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}")
    }
}

Rezultat

09:05
14:30
00:00

Greșeli frecvente

  • Apelezi padStart direct pe un Int. Funcția există doar pentru text; scrie nr.toString().padStart(5, '0').
  • Te aștepți ca un text prea lung să fie tăiat la lungimea cerută. padStart doar adaugă; pentru tăiere folosește take.

Comenzi înrudite

  • String.format: Construiește un text după un șablon cu marcaje ca %d, %s, %.2f, de exemplu pentru numere cu două zecimale.
  • String.repeat: repeat construiește un text din n copii ale textului; plus (operatorul +) lipește două texte.
  • 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.