# `Cldr.String`
[🔗](https://github.com/elixir-cldr/cldr_utils/blob/v2.29.6/lib/cldr/utils/string.ex#L1)

Functions that operate on a `String.t` that are not provided
in the standard lib.

# `hash`

Hash a string using a polynomial rolling hash function.

See https://cp-algorithms.com/string/string-hashing.html for
a description of the algoithim.

# `to_lower_char`

# `to_underscore`

Replaces "-" with "_" in a string.

## Examples

    iex> Cldr.String.to_underscore("this-one")
    "this_one"

# `to_upper_char`

# `underscore`

This is the code of Macro.underscore with modifications:

The change is to cater for strings in the format:

    This_That

which in Macro.underscore gets formatted as:

    this__that (note the double underscore)

when we actually want:

    that_that

---

*Consult [api-reference.md](api-reference.md) for complete listing*
