StringBuilder
classin packageklyn
public class StringBuilder extends Object
└ StringBuilder

Mutable builder used to efficiently assemble text.

Text is accumulated in a growable UTF-16 buffer. Capacity is measured in CodeUnit values, while logical positions and lengths count Unicode scalars. Appending is amortized linear in the appended text, without a String per chunk.

The builder produces regular Klyn String values. It therefore follows the same text contract as String:

  • textual content is stored in UTF-16
  • size and length() count Unicode scalar values, not UTF-16 code units
  • '\u0000' is ordinary embeddable text

Use StringBuilder for text rendering, source generation and formatting. Do not use it as a binary buffer.

Example
builder = StringBuilder()
builder.append("Bonjour ")
builder.append("π")
print(builder.toString())
Properties
Modifier and Type Member Description
public readonly property isEmpty
isEmpty as Boolean
Returns true when no character is present.
public readonly property size
size as ULong
Returns the number of Unicode scalar values in the string builder.
Inherited Properties
propertyInherited Properties from Object: type
Constructors
Modifier and Type Member Description
public StringBuilder
StringBuilder(size as ULong = 256)
Creates a new builder.
public StringBuilder Creates a new builder initialized with text.
Methods
Modifier and Type Member Description
public append
append(char as CodeUnit) as StringBuilder
Appends one UTF-16 code unit to the builder.
public append
append(notnull values as Char[], offset as Long = 0l, count as Long = -1l) as StringBuilder
Appends a range of Unicode scalars without allocating intermediate text.
public append
append(value as Boolean) as StringBuilder
Appends a boolean.
public append
append(value as Byte) as StringBuilder
Appends an unsigned byte.
public append
append(value as Char) as StringBuilder
Appends one Unicode scalar to the builder.
public append
append(value as Double) as StringBuilder
Appends a double.
public append
append(value as Float) as StringBuilder
Appends a float.
public append
append(value as Int) as StringBuilder
Appends a signed integer.
public append
append(value as Long) as StringBuilder
Appends a signed long.
public append
append(value as Object) as StringBuilder
Appends the string representation of an object.
public append
append(value as SByte) as StringBuilder
Appends a signed byte.
public append
append(value as Short) as StringBuilder
Appends a signed short.
public append
append(value as String) as StringBuilder
Appends a string.
public append
append(value as UInt) as StringBuilder
Appends an unsigned integer.
public append
append(value as ULong) as StringBuilder
Appends an unsigned long.
public append
append(value as UShort) as StringBuilder
Appends an unsigned short.
public clear
clear() as StringBuilder
Clears current content.
public endsWith
endsWith(suffix as String) as Boolean
Tests whether the current content ends with a suffix.
public insert
insert(position as Long, char as CodeUnit) as StringBuilder throws IndexException
Inserts one UTF-16 code unit.
public insert
insert(position as Long, value as Boolean) as StringBuilder throws IndexException
Inserts a boolean.
public insert
insert(position as Long, value as Byte) as StringBuilder throws IndexException
Inserts an unsigned byte.
public insert
insert(position as Long, value as Char) as StringBuilder throws IndexException
Inserts one Unicode scalar.
public insert
insert(position as Long, value as Double) as StringBuilder throws IndexException
Inserts a double.
public insert
insert(position as Long, value as Float) as StringBuilder throws IndexException
Inserts a float.
public insert
insert(position as Long, value as Int) as StringBuilder throws IndexException
Inserts a signed integer.
public insert
insert(position as Long, value as Long) as StringBuilder throws IndexException
Inserts a signed long.
public insert
insert(position as Long, value as Object) as StringBuilder throws IndexException
Inserts the string representation of an object.
public insert
insert(position as Long, value as SByte) as StringBuilder throws IndexException
Inserts a signed byte.
public insert
insert(position as Long, value as Short) as StringBuilder throws IndexException
Inserts a signed short.
public insert
insert(position as Long, value as String) as StringBuilder throws IndexException
Inserts a string at a given position.
public insert
insert(position as Long, value as UInt) as StringBuilder throws IndexException
Inserts an unsigned integer.
public insert
insert(position as Long, value as ULong) as StringBuilder throws IndexException
Inserts an unsigned long.
public insert
insert(position as Long, value as UShort) as StringBuilder throws IndexException
Inserts an unsigned short.
public length
length() as ULong
Returns current content length.
public remove
remove(position as Long, length as ULong) as StringBuilder throws IndexException
Removes a range of characters.
public reverse
reverse() as StringBuilder
Reverses characters in place.
public toCharArray
toCharArray() as Char[]
Returns the content as Unicode scalar values.
public toCodeUnitArray
toCodeUnitArray() as CodeUnit[]
Returns the content as UTF-16 code units.
public override toString
toString() as String
Returns a String representation of the builder content.
Inherited Methods
methodInherited Methods from Object: deepCopy, fromJson, hash, toDict, toJson, toMap, toString, toXml
Operators
Modifier and Type Member Description
public operator[](position as Long) as Char throws IndexException Gets or sets one Unicode scalar by index.