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
padStartdirect pe unInt. Funcția există doar pentru text; scrienr.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.