StringBuilderクラスは可変長の文字列を扱うクラスです。
append()メソッドを使って文字列を連結させていく時に使います。
String()クラスに+=していけば良くない?って感じですが、String()は一度生成すると値を変更することができません。
つまり下記のコードではstrに"abc"と"def"を足しているように見えますが、メモリ上の処理は新たにstrインスタンスを生成して"abcdef"を作成していることになります。
fun main() {
var str = "abc"
println(str)
str += "def"
println(str)
}
こちらの記事に分かり易く説明されています。
参考:Stringと StringBuilder
よって、StringBuilder()を使った以下のようなコードの方が処理速度が早くなります。
fun main() {
var sb = StringBuilder()
sb.append("abc")
println(sb)
sb.append("def")
println(sb)
}
こちらの記事に処理速度の違いがまとめられていました。
参考:【String型 vs StringBuilder】文字列結合における処理速度の違い