Ce face StringBuilder.insert
Spre deosebire de String, un StringBuilder se poate modifica. insert(i, x) pune x înaintea poziției i și mută restul la dreapta. deleteCharAt(i) șterge caracterul de la poziția i. reverse() inversează ordinea caracterelor, iar clear() golește builder-ul ca să îl refolosești.
Toate returnează builder-ul, deci se pot înlănțui. Pozițiile în afara textului aruncă StringIndexOutOfBoundsException. Mai există setCharAt(i, c) (sau sb[i] = c) și delete(start, end).
Parametri
| Parametru | Descriere |
|---|---|
index |
Poziția (de la 0) la care se inserează sau de unde se șterge. |
value |
Pentru insert: ce se adaugă. |
Ce returnează
Același StringBuilder, modificat.
Exemple
Exemplul 1: Inserare și ștergere
Fiecare operație modifică același obiect; afișăm după fiecare pas.
fun main() {
val sb = StringBuilder("Ana mere")
sb.insert(4, "are ")
println(sb)
sb.insert(0, "Azi, ")
println(sb)
sb.deleteCharAt(sb.length - 1)
println(sb)
}
Rezultat
Ana are mere
Azi, Ana are mere
Azi, Ana are mer
Exemplul 2: Separator de mii
Inserăm un punct la fiecare trei cifre, de la dreapta spre stânga.
fun main() {
val sb = StringBuilder(1234567.toString())
var i = sb.length - 3
while (i > 0) {
sb.insert(i, '.')
i -= 3
}
println("$sb lei")
}
Rezultat
1.234.567 lei
Exemplul 3: reverse și clear
reverse inversează pe loc. După clear, builder-ul este gol și poate fi refolosit.
fun main() {
val sb = StringBuilder("Sibiu")
sb.reverse()
println(sb)
sb.clear()
println("Lungime după clear: ${sb.length}")
sb.append("Arad")
println(sb)
}
Rezultat
uibiS
Lungime după clear: 0
Arad
Greșeli frecvente
- Inserezi de la stânga la dreapta într-o buclă și pozițiile se decalează după fiecare inserare. Pornește de la dreapta, ca în exemplul cu separatorul de mii.
- Folosești
sb.reverse()și apoi te miri că și variabila inițială s-a schimbat. reverse modifică builder-ul; pentru un text nou pe String existăreversed().
Comenzi înrudite
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.String.toCharArray: Copiază caracterele textului într-un CharArray, un tablou care, spre deosebire de String, poate fi modificat.