string
bytes
|String| -> Iterator
Returns an iterator that yields a series of integers representing the bytes contained in the string data.
Example
'Hëy!'.bytes.to_tuple
#: (72, 195, 171, 121, 33)
See Also
chars
|String| -> Iterator
Returns an iterator that yields the string's characters as strings.
A 'character' in Koto is defined as being a unicode grapheme cluster.
It's worth noting that is the default iteration behaviour for a string,
so calling 'hello'.chars()
is equivalent to calling iterator.iter('hello')
.
Example
'Héllø! 👋'.chars.to_tuple
#: ('H', 'é', 'l', 'l', 'ø', '!', ' ', '👋')
See Also
char_indices
|String| -> Iterator
Returns an iterator that yields the indices of each grapheme cluster in the string.
Each cluster is represented as a range, which can then be used to extract the cluster from the string via indexing.
Example
s = 'Hi 👋'
indices = s.char_indices.to_tuple
#: (0..1, 1..2, 2..3, 3..7)
s
#: 👋
See Also
contains
|String, String| -> Bool
Returns true
if the second provided string is a sub-string of the first.
Example
'xyz'.contains 'abc'
#: false
'xyz'.contains 'yz'
#: true
'xyz'.contains 'xyz'
#: true
'xyz'.contains ''
#: true
ends_with
|String, String| -> Bool
Returns true
if the first string ends with the second string.
Example
'abcdef'.ends_with 'def'
#: true
'xyz'.ends_with 'abc'
#: false
escape
|String| -> String
Returns the string with characters replaced with escape codes.
For example, newlines get replaced with \n
, tabs get replaced with \t
.
Example
'👋'.escape
#: \u{1f44b}
is_empty
|String| -> Bool
Returns true
if the string contains no characters.
Example
'abcdef'.is_empty
#: false
''.is_empty
#: true
from_bytes
|Iterable| -> String
Returns a string containing the bytes that are produced by the input iterable.
The iterable output must contain only Numbers in the 0..=255
range.
The resulting sequence of bytes must contain UTF-8 data.
Example
string.from_bytes
#: Hëy!
See Also
lines
|String| -> Iterator
Returns an iterator that yields the lines contained in the input string.
Note
Lines end with either \r\n
or \n
.
Example
'foo\nbar\nbaz'.lines.to_tuple
#: ('foo', 'bar', 'baz')
'\n\n\n'.lines.to_tuple
#: ('', '', '')
repeat
|String, n: Number| -> String
Creates a new string by repeating the input n
times.
Example
'abc'.repeat 3
#: abcabcabc
replace
|String, match: String, replacement: String| -> String
Returns a copy of the input string with all occurrences of the match
string
replaced with a replacement
string.
Example
'10101'.replace '0', 'x'
#: 1x1x1
split
|String, match: String| -> Iterator
Returns an iterator that yields strings resulting from splitting the first
string wherever the match
string is encountered.
|String, match: |String| -> Bool| -> Iterator
Returns an iterator that yields strings resulting from splitting the input
string based on the result of calling a match
function.
The match
function will be called for each grapheme in the input string, and
splits will occur when the function returns true.
Example
'a,b,c'.split.to_tuple
#: ('a', 'b', 'c')
'O_O'.split.to_tuple
#: ('', '_', '')
'x!y?z'.split.to_tuple
#: ('x', 'y', 'z')
starts_with
|String, match: String| -> Bool
Returns true
if the first string starts with the match
string.
Example
'abcdef'.starts_with 'abc'
#: true
'xyz'.starts_with 'abc'
#: false
strip_prefix
|input: String, prefix: String| -> String?
Returns the input string with the given prefix
removed,
or null
if the input string doesn't start with prefix
.
Example
'abc: xyz'.strip_prefix 'abc: '
#: xyz
'xxxxx'.strip_prefix 'abc: '
#: null
See Also
strip_suffix
|input: String, suffix: String| -> String?
Returns the input string with the given suffix
removed,
or null
if the input string doesn't end with suffix
.
Example
'abc: xyz'.strip_suffix ' xyz'
#: abc:
'xxxxx'.strip_suffix ' xyz'
#: null
See Also
to_lowercase
|String| -> String
Returns a lowercase version of the input string.
Example
'HÉLLÖ'.to_lowercase
#: héllö
'O_o'.to_lowercase
#: o_o
to_number
|String| -> Number?
Returns the string converted into a number.
0x
,0o
, and0b
prefixes will cause the parsing to treat the input as containing a hexadecimal, octal, or binary number respectively.- Otherwise the number is assumed to be base 10, and the presence of a decimal point will produce a float instead of an integer.
If a number can't be produced then null
is returned.
|String, base: Number| -> Number?
Returns the string converted into a number given the specified base
.
The base must be an integer in the range 2..=36
,
otherwise an error will be thrown.
If the string contains non-numerical digits then null
is returned.
Example
'123'.to_number
#: 123
'-8.9'.to_number
#: -8.9
'0x7f'.to_number
#: 127
'0b10101'.to_number
#: 21
'2N9C'.to_number
#: 123456
to_uppercase
|String| -> String
Returns an uppercase version of the input string.
Example
'héllö'.to_uppercase
#: HÉLLÖ
'O_o'.to_uppercase
#: O_O
trim
|input: String| -> String
Returns a string with any whitespace removed from the start and end of the input.
|input: String, pattern: String| -> String
Returns a string with all occurrences of the pattern removed from the start and end of the input.
Example
' x '.trim
#: x
' !'.trim
#: !
'----O_o----'.trim '-'
#: O_o
'abcabc!!!abcabc'.trim 'abc'
#: !!!
See Also
trim_start
|input: String| -> String
Returns a string with any whitespace removed from the start of the input.
|input: String, pattern: String| -> String
Returns a string with all occurrences of the pattern removed from the start of the input.
Example
trimmed = ' x '.trim_start
#: ('x ')
'----O_o----'.trim_start '-'
#: O_o----
'abcabc!!!abcabc'.trim_start 'abc'
#: !!!abcabc
See Also
trim_end
|input: String| -> String
Returns a string with any whitespace removed from the end of the input.
|input: String, pattern: String| -> String
Returns a string with all occurrences of the pattern removed from the end of the input.
Example
' x '.trim_end
#: x
' ! '.trim_end
#: !
'----O_o----'.trim_end '-'
#: ----O_o
'abcabc!!!abcabc'.trim_end 'abc'
#: abcabc!!!