module StringLabels: sig .. end
let length: string => int;
let get: (string, int) => char;
String.get s n
returns the character at index n
in string s
.
You can also write s.[n]
instead of String.get s n
.
Raise Invalid_argument
if n
not a valid index in s
.
let set: (bytes, int, char) => unit;
BytesLabels.set
.String.set s n c
modifies byte sequence s
in place,
replacing the byte at index n
with c
.
You can also write s.[n] <- c
instead of String.set s n c
.
Raise Invalid_argument
if n
is not a valid index in s
.
let create: int => bytes;
BytesLabels.create
.String.create n
returns a fresh byte sequence of length n
.
The sequence is uninitialized and contains arbitrary bytes.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
let make: (int, char) => string;
String.make n c
returns a fresh string of length n
,
filled with the character c
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
let init: (int, ~f: int => char) => string;
init n f
returns a string of length n
,
with character i
initialized to the result of f i
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
let copy: string => string;
let sub: (string, ~pos: int, ~len: int) => string;
String.sub s start len
returns a fresh string of length len
,
containing the substring of s
that starts at position start
and
has length len
.
Raise Invalid_argument
if start
and len
do not
designate a valid substring of s
.
let fill: (bytes, ~pos: int, ~len: int, char) => unit;
BytesLabels.fill
.String.fill s start len c
modifies byte sequence s
in place,
replacing len
bytes by c
, starting at start
.
Raise Invalid_argument
if start
and len
do not
designate a valid substring of s
.
let blit:
(~src: string, ~src_pos: int, ~dst: bytes, ~dst_pos: int, ~len: int) => unit;
String.blit src srcoff dst dstoff len
copies len
bytes
from the string src
, starting at index srcoff
,
to byte sequence dst
, starting at character number dstoff
.
Raise Invalid_argument
if srcoff
and len
do not
designate a valid range of src
, or if dstoff
and len
do not designate a valid range of dst
.
let concat: (~sep: string, list(string)) => string;
String.concat sep sl
concatenates the list of strings sl
,
inserting the separator string sep
between each.let iter: (~f: char => unit, string) => unit;
String.iter f s
applies function f
in turn to all
the characters of s
. It is equivalent to
f s.[0]; f s.[1]; ...; f s.[String.length s - 1]; ()
.let iteri: (~f: (int, char) => unit, string) => unit;
String.iter
, but the
function is applied to the index of the element as first argument
(counting from 0), and the character itself as second argument.let map: (~f: char => char, string) => string;
String.map f s
applies function f
in turn to all
the characters of s
and stores the results in a new string that
is returned.let mapi: (~f: (int, char) => char, string) => string;
String.mapi f s
calls f
with each character of s
and its
index (in increasing index order) and stores the results in a new
string that is returned.let trim: string => string;
' '
,
'\012'
, '\n'
, '\r'
, and '\t'
. If there is no leading nor
trailing whitespace character in the argument, return the original
string itself, not a copy.let escaped: string => string;
let index: (string, char) => int;
String.index s c
returns the index of the first
occurrence of character c
in string s
.
Raise Not_found
if c
does not occur in s
.
let rindex: (string, char) => int;
String.rindex s c
returns the index of the last
occurrence of character c
in string s
.
Raise Not_found
if c
does not occur in s
.
let index_from: (string, int, char) => int;
String.index_from s i c
returns the index of the
first occurrence of character c
in string s
after position i
.
String.index s c
is equivalent to String.index_from s 0 c
.
Raise Invalid_argument
if i
is not a valid position in s
.
Raise Not_found
if c
does not occur in s
after position i
.
let rindex_from: (string, int, char) => int;
String.rindex_from s i c
returns the index of the
last occurrence of character c
in string s
before position i+1
.
String.rindex s c
is equivalent to
String.rindex_from s (String.length s - 1) c
.
Raise Invalid_argument
if i+1
is not a valid position in s
.
Raise Not_found
if c
does not occur in s
before position i+1
.
let contains: (string, char) => bool;
String.contains s c
tests if character c
appears in the string s
.let contains_from: (string, int, char) => bool;
String.contains_from s start c
tests if character c
appears in s
after position start
.
String.contains s c
is equivalent to
String.contains_from s 0 c
.
Raise Invalid_argument
if start
is not a valid position in s
.
let rcontains_from: (string, int, char) => bool;
String.rcontains_from s stop c
tests if character c
appears in s
before position stop+1
.
Raise Invalid_argument
if stop < 0
or stop+1
is not a valid
position in s
.
let uppercase: string => string;
let lowercase: string => string;
let capitalize: string => string;
let uncapitalize: string => string;
type t = string;
let compare: (t, t) => int;
Pervasives.compare
. Along with the type t
, this function compare
allows the module String
to be passed as argument to the functors
Set.Make
and Map.Make
.