Strings

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`. Because the `Integer` type is platform-dependent a compiler for a given platform is permitted to further manipulate the calculated hash for an object, and the resulting hash may differ between platforms. 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. Always `size>0 then size-1`. 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: `Object` `hash`, `string`
Attributes inherited from: `Collection<Element>` `empty`, `permutations`, `string`
Attributes inherited from: `Correspondence<Key,Item>` `keys`
Attributes inherited from: `Iterable<Element,Absent>` `coalesced`, `cycled`, `distinct`, `empty`, `exceptLast`, `first`, `indexed`, `last`, `paired`, `rest`, `size`, `string`
Attributes inherited from: `List<Element>` `first`, `hash`, `keys`, `last`, `lastIndex`, `rest`, `reversed`, `size`

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: `Object` `equals()`
Methods inherited from: `Category<Element>` `contains()`, `containsAny()`, `containsEvery()`
Methods inherited from: `Collection<Element>` `clone()`, `contains()`
Methods inherited from: `Correspondence<Key,Item>` `defines()`, `definesAny()`, `definesEvery()`, `get()`, `getAll()`
Methods inherited from: `Iterable<Element,Absent>` `any()`, `by()`, `chain()`, `collect()`, `contains()`, `count()`, `defaultNullElements()`, `each()`, `every()`, `filter()`, `find()`, `findLast()`, `flatMap()`, `fold()`, `follow()`, `frequencies()`, `getFromFirst()`, `group()`, `indexes()`, `interpose()`, `iterator()`, `locate()`, `locateLast()`, `locations()`, `longerThan()`, `map()`, `max()`, `narrow()`, `partition()`, `product()`, `reduce()`, `repeat()`, `scan()`, `select()`, `sequence()`, `shorterThan()`, `skip()`, `skipWhile()`, `sort()`, `spread()`, `summarize()`, `tabulate()`, `take()`, `takeWhile()`
Methods inherited from: `List<Element>` `clone()`, `collect()`, `contains()`, `defines()`, `endsWith()`, `equals()`, `find()`, `findLast()`, `firstIndexWhere()`, `get()`, `getFromFirst()`, `getFromLast()`, `indexesWhere()`, `initial()`, `iterator()`, `lastIndexWhere()`, `longerThan()`, `measure()`, `patch()`, `repeat()`, `shorterThan()`, `slice()`, `span()`, `spanFrom()`, `spanTo()`, `startsWith()`, `sublist()`, `sublistFrom()`, `sublistTo()`, `terminal()`, `trim()`, `trimLeading()`, `trimTrailing()`
Methods inherited from: `Ranged<Index,Element,Subrange>` `measure()`, `span()`, `spanFrom()`, `spanTo()`