module String:文字列の操作sig
..end
長さ l
の文字列 s
が与えられたとき、 s
中の文字を表す番号をその文字の添字と呼びます。
添字は 0
から始まります。ある数字が区間 [0...l-1]
にあるとき、その数字は s
に対して有効な添字であるとと言います。
ある文字と文字、または文字の先頭や末尾との間を文字列中の位置と呼びます。
区間 [0...l]
にある位置を s
に対して有効な位置と言います。
添字 n
は位置 n
と n + 1
の間にあることに注意してください。
パラメータ start
と len
があり len >= 0
かつ、 start
と start + len
が s
の有効な位置であるとき、 start
と len
は s
の有効な部分文字列を表す、と言います。
val length : string -> int
val get : string -> int -> char
String.get s n
は文字列 s
の n
文字目を返します。
String.get s n
の代わりに s.[n]
と書くこともできます。
n
が s
の有効な添字でない場合は Invalid_argument
例外が発生します。
val set : string -> int -> char -> unit
String.set s n c
は文字列 s
の n
文字目を c
で置き換えて破壊的に更新します。
String.set s n c
の代わりに s.[n] <- c
と書くこともできます。
n
が s
の有効な添字でない場合は Invalid_argument
例外が発生します。
val create : int -> string
String.create n
は長さ n
の新しい文字列を返します。
戻り値の文字列は何らかの任意の文字を格納しています。
n < 0
ないしは n >
Sys.max_string_length
の場合は Invalid_argument
例外が発生します。
val make : int -> char -> string
String.make n c
は長さ n
で文字 c
で埋められた新しい文字列を返します。
n < 0
ないしは n >
Sys.max_string_length
の場合は Invalid_argument
例外が発生します。
val copy : string -> string
val sub : string -> int -> int -> string
String.sub s start len
は、 s
の位置 start
から始まり長さ len
である部分文字列を格納した、長さ len
の新しい文字列を返します。
start
と len
が s
の有効な部分文字列を表さない場合には Invalid_argument
例外が発生します。
val fill : string -> int -> int -> char -> unit
String.fill s start len c
は s
の start
文字目から len
文字を文字 c
で置き換えて破壊的に更新します。
start
と len
が s
の有効な部分文字列を表さない場合には Invalid_argument
例外が発生します。
val blit : string -> int -> string -> int -> int -> unit
String.blit src srcoff dst dstoff len
は src
の srcoff
文字目から len
文字を dst
の dstoff
文字目にコピーします。
この関数は src
と dst
が同一の文字で、コピー元とコピー先の区間が重なっていても正しく動作します。
srcoff
と len
が src
の有効な部分文字列を表さない場合や、
dstoff
と len
が dst
の有効な部分文字列を表さない場合は
Invalid_argument
例外が発生します。
val concat : string -> string list -> string
String.concat seq sl
は文字列のリスト sl
の各要素の間に区切り文字列
sep
を挿入して連結します。val iter : (char -> unit) -> string -> unit
String.iter f s
は s
のすべての文字に順に関数 f
を適用します。
f s.[0]; f s.[1]; ...; f s.[String.length s - 1]; ()
と等価です。val escaped : string -> string
val index : string -> char -> int
String.index s c
は文字列 s
中で文字 c
が現れる最初の添字を返します。
文字 c
が 文字列 s
中に現れない場合には Not_found
例外が発生します。
val rindex : string -> char -> int
String.rindex s c
は文字列 s
中で文字 c
が現れる最後の添字を返します。
文字 c
が 文字列 s
中に現れない場合には Not_found
例外が発生します。
val index_from : string -> int -> char -> int
String.index_from s i c
は文字列 s
の位置 i
以降で最初に文字 c
の現れる位置の添字を返します。
String.index s c
は String.index_from s 0 c
と等価です。
i
が s
の有効な位置でない場合には Invalid_argument
例外が発生します。
文字 c
が 文字列 s
中に現れない場合には Not_found
例外が発生します。
val rindex_from : string -> int -> char -> int
String.rindex_from s i c
は文字列 s
の位置 i + 1
より前で最後に文字 c
の現れる位置の添字を返します。
String.rindex s c
は String.rindex_from s (String.length s - 1) c
と等価です。
i + 1
が s
の有効な位置でない場合には Invalid_argument
例外が発生します。
文字 c
が 文字列 s
中に現れない場合には Not_found
例外が発生します。
val contains : string -> char -> bool
String.contains s c
は文字 c
が文字列 s
中に現れるか検査します。val contains_from : string -> int -> char -> bool
String.contains_from s start c
は文字 c
が文字列 s
の位置 start
以降に現れるか検査します。
String.contains s c
は String.contains s 0 c
と等価です。
start
が s
の有効な位置でない場合 Invalid_argument
例外が発生します。
val rcontains_from : string -> int -> char -> bool
String.rcontains_from s stop c
は文字 c
が文字列 s
の位置 stop + 1
より前に現れるか検査します。
stop < 0
か stop
が s
の有効な位置でない場合 Invalid_argument
例外が発生します。
val uppercase : string -> string
val lowercase : string -> string
val capitalize : string -> string
val uncapitalize : string -> string
typet =
string
val compare : t -> t -> int