8. Boost package for string manipulation library

The STRINGS boost module implements collection of helper macros and functions to accompany STRINGS.

All functions and symbols are in “strings_boost” module, use require to get access to it.

require daslib/strings_boost

8.1. Split and join

split(text: string implicit; delim: string implicit): array<string>

Splits a string into an array of substrings based on the specified delimiter.

Arguments:
  • text : string implicit

  • delim : string implicit

split_by_chars(text: string implicit; delim: string implicit): array<string>

Splits the input string into an array of substrings based on the specified delimiter characters.

Arguments:
  • text : string implicit

  • delim : string implicit

join(it: auto; separator: string implicit): auto

Joins the elements of an iterable into a single string, separated by the specified separator.

Arguments:
  • it : auto

  • separator : string implicit

join(it: iterator<auto(TT)>; separator: string implicit): auto

Joins the elements of an iterable into a single string, separated by the specified separator.

Arguments:
  • it : iterator<auto(TT)>

  • separator : string implicit

join(iterable: array<auto(TT)>; separator: string; blk: block<(var writer:StringBuilderWriter;elem:TT):void>): string

Joins the elements of an array into a single string, separated by the specified separator, using a custom block to convert each element to a string. :Arguments: * iterable : array<auto(TT)>

join(iterable: iterator<auto(TT)>; separator: string; blk: block<(var writer:StringBuilderWriter;elem:TT):void>): string

Joins the elements of an iterable into a single string, separated by the specified separator, using a custom block to convert each element to a string.

Arguments:
  • iterable : iterator<auto(TT)>

  • separator : string

  • blk : block<(writer: StringBuilderWriter ;elem:TT):void>

join(iterable: auto(TT)[]; separator: string; blk: block<(var writer:StringBuilderWriter;elem:TT):void>): string

Joins the elements of an array into a single string, separated by the specified separator, using a custom block to convert each element to a string.

Arguments:
  • iterable : auto(TT)[-1]

  • separator : string

  • blk : block<(writer: StringBuilderWriter ;elem:TT):void>

split(text: string implicit; delim: string implicit; blk: block<(arg:array<string>#):auto>): auto

Splits a string into substrings based on the specified delimiter characters, invoking a custom block for each substring.

Arguments:
  • text : string implicit

  • delim : string implicit

  • blk : block<(arg:array<string>#):auto>

split_by_chars(text: string implicit; delim: string implicit; blk: block<(arg:array<string>#):auto>): auto

Splits a string into substrings based on the specified delimiter characters, invoking a custom block for each substring.

Arguments:
  • text : string implicit

  • delim : string implicit

  • blk : block<(arg:array<string>#):auto>

8.2. Formatting

wide(text: string implicit; width: int): string

Pads the given string to the specified width by appending spaces if necessary.

Arguments:
  • text : string implicit

  • width : int

8.3. Queries and comparisons

is_character_at(foo: array<uint8>; idx: int; ch: int): auto

Returns whether the character at the specified index in the byte array matches the given character code.

Arguments:
  • foo : array<uint8> implicit

  • idx : int

  • ch : int

eq(a: string implicit; b: das_string): auto

Compares a string with a das_string for equality.

Arguments:
eq(b: das_string; a: string implicit): auto

Compares a das_string with a string for equality.

Arguments:

8.4. Replace

replace_multiple(source: string; replaces: array<tuple<text:string;replacement:string>>): string

Replaces multiple substrings in the source string according to the provided list of replacements.

Arguments:
  • source : string

  • replaces : array<tuple<text:string;replacement:string>>

8.5. Levenshtein distance

levenshtein_distance(s: string implicit; t: string implicit): int

Returns the Levenshtein distance between two strings.

Arguments:
  • s : string implicit

  • t : string implicit

levenshtein_distance_fast(s: string implicit; t: string implicit): int

Returns the Levenshtein distance between two strings, which is a measure of the difference between them.

Arguments:
  • s : string implicit

  • t : string implicit