Scala strings are immutable. Sometimes we need a mutable string, typically because we want to build up a long string from small pieces, for instance in a loop. The StringBuilder class is useful as a mutable string that can grow efficiently (it is implemented using the doubling strategy). A StringBuilder object B can mostly be used like a string, but it is mutable, and you can append to it:
In addition, StringBuilder provides all the common methods of sequences—a StringBuilder is a sequence of Char elements.
For instance:
scala> val B = new StringBuilder B: StringBuilder = scala> B ++= "Hello" res0: B.type = Hello scala> B += ' ' res1: B.type = Hello scala> B ++= "World" res2: B.type = Hello World scala> B.delete(1,2) res3: StringBuilder = Hllo World scala> B.insert(5, "CS206 ") res4: StringBuilder = Hllo CS206 World scala> B(1) = 'e' scala> B res5: StringBuilder = Helo CS206 World scala> B.toString res6: java.lang.String = Helo CS206 World