The StringBuffer class
The base.StringBuffer
class is a built-in class designed to manipulate
character strings.
This class is optimized for string operations such as scanning, replacements, concatenation.
Use the base.StringBuffer
class instead of STRING
variables to implement heavy-duty
string manipulations. When you use a base.StringBuffer
object, you work directly on
the internal string buffer. When you use the STRING
data type and modify a string,
the runtime system creates a new buffer. While this does not impact the performance of programs with
a user interface or even batch programs doing SQL, it can impact performance when you need to
rapidly process large character strings. For example, if you need to process 500 KB of text (such as
when you are performing a global search-and-replace of specific words), you get much better
performance with a base.StringBuffer
object than you would with a
STRING
variable.
When you pass a base.StringBuffer
object as a function parameter, the function
receives a variable that references the object. Passing the object by reference is much more efficient
than using a STRING
that is passed by value, because STRING
data is
copied on the stack. The function manipulates the original string, not a copy of the string.
The methods of this class use character positions and string length. When using byte length semantics, the length is expressed in bytes. When using char length semantics, the unit is characters. This matters when using a multibyte locale such as UTF-8.