Builder utility for constructing strings by incrementally appending strings or characters.

    value builder = StringBuilder();
    builder.append("hello");
    builder.appendCharacter(' ');
    builder.append("world");
    String hello = builder.string; //hello world

- `Anything`
  - `Object`
    - `Basic` ...and other supertypes
      - `StringBuilder` ...and other supertypes

- `StringBuilder`
  - `Basic`
    - `Identifiable`
    - `Object`
      - `Anything`
  - `List`
    - `Collection`
      - `Iterable`
        - `Category`
    - `Correspondence`
    - `Ranged`
      - `Iterable`
        - `Category`

no subtypes hierarchy

Initializer
`StringBuilder()`

Attributes
`hash` | Source Code `shared actual Integer hash` The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that: if `x==y` then `x.hash==y.hash`. Therefore, a class which refines `Object.equals()` must also refine `hash`. Refines `List.hash` ultimately refines `Object.hash`
`lastIndex` | Source Code `shared actual Integer? lastIndex` The index of the last element of the list, or `null` if the list is empty. Refines `List.lastIndex`
`size` | Source Code `shared actual Integer size` The number characters in the current content, that is, the size of the produced `string`. Refines `List.size` ultimately refines `Iterable.size`
`string` | Source Code `shared actual String string` The resulting string. If no characters have been appended, the empty string. Refines `Collection.string` ultimately refines `Object.string`

Inherited Attributes
Attributes inherited from: `Collection<Element>` `Collection.string`
Attributes inherited from: `Correspondence<Key,Item>` `Correspondence.keys`
Attributes inherited from: `Iterable<Element,Absent>` `Iterable.coalesced`, `Iterable.cycled`, `Iterable.empty`, `Iterable.exceptLast`, `Iterable.first`, `Iterable.indexed`, `Iterable.last`, `Iterable.paired`, `Iterable.rest`, `Iterable.size`, `Iterable.string`
Attributes inherited from: `List<Element>` `List.hash`, `List.lastIndex`, `List.reversed`

Methods
`append` | Source Code `shared StringBuilder append(String string)` Append the characters in the given `string`.
`appendAll` | Source Code `shared StringBuilder appendAll({String*} strings)` Append the characters in the given `strings`.
`appendCharacter` | Source Code `shared StringBuilder appendCharacter(Character character)` Append the given `character`.
`appendNewline` | Source Code `shared StringBuilder appendNewline()` Append a newline character.
`appendSpace` | Source Code `shared StringBuilder appendSpace()` Append a space character.
`clear` | Source Code `shared StringBuilder clear()` Remove all content and return to initial state.
`delete` | Source Code `shared StringBuilder delete(Integer index, Integer length)` Deletes the specified number of characters from the current content, starting at the specified `index`. If `length` is nonpositive, nothing is deleted.
`deleteInitial` | Source Code `shared StringBuilder deleteInitial(Integer length)` Deletes the specified number of characters from the start of the string. If `length` is nonpositive, nothing is deleted.
`deleteTerminal` | Source Code `shared StringBuilder deleteTerminal(Integer length)` Deletes the specified number of characters from the end of the string. If `length` is nonpositive, nothing is deleted.
`equals` | Source Code `shared actual Boolean equals(Object that)` Determine if two values are equal. Implementations should respect the constraints that: if `x===y` then `x==y` (reflexivity), if `x==y` then `y==x` (symmetry), if `x==y` and `y==z` then `x==z` (transitivity). Furthermore it is recommended that implementations ensure that if `x==y` then `x` and `y` have the same concrete class. A class which explicitly refines `equals()` is said to support value equality, and the equality operator `==` is considered much more meaningful for such classes than for a class which simply inherits the default implementation of identity equality from `Identifiable`. Refines `List.equals` ultimately refines `Object.equals`
`getFromFirst` | Source Code `shared actual Character? getFromFirst(Integer index)` The `index`th element returned by an iterator of this stream, or `null` if there are fewer than `index+1` elements in the stream. For a stream with an unstable iteration order, a different value might be produced each time `getFromFirst(index)` is called for a given integer `index`. Refines `List.getFromFirst` ultimately refines `Iterable.getFromFirst`
`insert` | Source Code `shared StringBuilder insert(Integer index, String string)` Insert a `string` at the specified `index`.
`insertCharacter` | Source Code `shared StringBuilder insertCharacter(Integer index, Character character)` Insert a `character` at the specified `index`.
`iterator` | Source Code `shared actual Iterator<Character> iterator()` An iterator for the elements belonging to this stream. Refines `List.iterator` ultimately refines `Iterable.iterator`
`prepend` | Source Code `shared StringBuilder prepend(String string)` Prepend the characters in the given `string`.
`prependAll` | Source Code `shared StringBuilder prependAll({String*} strings)` Prepend the characters in the given `strings`.
`prependCharacter` | Source Code `shared StringBuilder prependCharacter(Character character)` Prepend the given `character`.
`replace` | Source Code `shared StringBuilder replace(Integer index, Integer length, String string)` Replaces the specified number of characters from the current content, starting at the specified `index`, with the given `string`. If `length` is nonpositive, nothing is replaced.
`reverseInPlace` | Source Code `shared StringBuilder reverseInPlace()` Reverses the order of the current characters.
`substring` | Source Code `shared String substring(Integer index, Integer length)` Returns a string of the given `length` containing the characters beginning at the given `index`.

Inherited Methods
Methods inherited from: `Category<Element>` `Category.contains()`, `Category.containsAny()`, `Category.containsEvery()`
Methods inherited from: `Collection<Element>` `Collection.clone()`
Methods inherited from: `Correspondence<Key,Item>` `Correspondence.defines()`, `Correspondence.definesAny()`, `Correspondence.definesEvery()`, `Correspondence.get()`, `Correspondence.getAll()`
Methods inherited from: `Iterable<Element,Absent>` `Iterable.any()`, `Iterable.by()`, `Iterable.chain()`, `Iterable.collect()`, `Iterable.count()`, `Iterable.defaultNullElements()`, `Iterable.every()`, `Iterable.filter()`, `Iterable.find()`, `Iterable.findLast()`, `Iterable.flatMap()`, `Iterable.fold()`, `Iterable.follow()`, `Iterable.getFromFirst()`, `Iterable.interpose()`, `Iterable.iterator()`, `Iterable.longerThan()`, `Iterable.map()`, `Iterable.max()`, `Iterable.partition()`, `Iterable.product()`, `Iterable.reduce()`, `Iterable.repeat()`, `Iterable.scan()`, `Iterable.select()`, `Iterable.sequence()`, `Iterable.shorterThan()`, `Iterable.skip()`, `Iterable.skipWhile()`, `Iterable.sort()`, `Iterable.spread()`, `Iterable.take()`, `Iterable.takeWhile()`
Methods inherited from: `List<Element>` `List.endsWith()`, `List.equals()`, `List.firstInclusion()`, `List.firstIndexWhere()`, `List.firstOccurrence()`, `List.getFromLast()`, `List.includes()`, `List.includesAt()`, `List.inclusions()`, `List.indexesWhere()`, `List.initial()`, `List.lastInclusion()`, `List.lastIndexWhere()`, `List.lastOccurrence()`, `List.occurrences()`, `List.occurs()`, `List.occursAt()`, `List.patch()`, `List.slice()`, `List.startsWith()`, `List.sublist()`, `List.sublistFrom()`, `List.sublistTo()`, `List.terminal()`, `List.trim()`, `List.trimLeading()`, `List.trimTrailing()`
Methods inherited from: `Ranged<Index,Element,Subrange>` `Ranged.measure()`, `Ranged.span()`, `Ranged.spanFrom()`, `Ranged.spanTo()`