String

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 13:58:05

Chapter 20 標準ライブラリ

module String: sig  end

文字列処理です。長さlの文字列sが与えられた場合、sのインデックスを文字番号と呼びます。文字番号は0から始まり、また[0..l-1]の範囲に収まる文字番号をsの妥当な文字番号と呼びます。ポジションは2つの文字の間か、文字列の先頭か終端です。[0..l]に収まるポジションを、sの妥当な場所と呼びます。文字番号nは、ポジションnとn+1の間です。

2つのパラメータstartとlenは部分文字列を示します。ただし、len >=0でありlstartと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が妥当な文字番号でない場合、例外 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が妥当な文字番号でない場合、例外 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 は長さ len の文字列を新しく作って返します。この文字列は s の startの場所から始まり、lenの長さです。

start と len が s の部分文字列指定として不正であった場合は例外 Invalid_argument を発生します。

val fill : string -> int -> int -> char -> unit

String.fill s start len c は文字列 s の start 番目から start + len - 1 番目までの文字をすべて 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 sep sl は文字列のリスト sl を繋いで 1 つの文字列とします。それぞれの文字列と文字列の間にはセパレータ文字列 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

引数の文字列をコピーして、Objective Caml の字句規則に従い特殊文字をエスケープして返します。引数の文字列が特殊文字を持たなかった場合はコピーではなく引数をそのまま返します。

val index : string -> char -> int

String.index s c は文字列 s 中で文字 c が左端から探して最初に現れる文字番号を返します。

s 中から c が見つからなかった場合は例外 Not_found を発生します。

val rindex : string -> char -> int

String.rindex s c は文字列 s 中で文字 c が右端から探して最初に現れる文字番号を返します。

s 中から c が見つからなかった場合は例外 Not_found を発生します。

val index_from : string -> int -> char -> int

String.index_from s cはポジションi以降で文字cが最初に表われる文字番号を返します。String.index s c は String.index_from s 0 c と等価です。

iがsの中の正しいポジションでなければ、Invalid_argument例外を発生します。cがs中のiの後になければ、Not_found例外を発生します。

val rindex_from : string -> int -> char -> int

String.index_from s cはポジションi+1以前で文字cが最後表われる文字番号を返します。String.rindex s c は String.rindex_from s (String.length s - 1) c と等価です。

i+1がsの中の正しいポジションでなければ、Invalid_argument例外を発生します。cがs中のiの後になければ、Not_found例外を発生します。

val contains : string -> char -> bool

String.contains s c は文字列 s 中に文字 c があるかどうか検査します。

val contains_from : string -> int -> char -> bool

String.contains_from s start c は文字列 s の ポジションstartから終端までの間に文字 c があるかどうか検査します。String.contains s cはString.contains_from s 0 cと等価です。

start が s の位置指定として不正であった場合は例外 Invalid_argument を発生します。

val rcontains_from : string -> int -> char -> bool

String.rcontains_from s stop c は文字列 s の先頭からポジションstop+1までの間に文字 c があるかどうか検査します。

stop が s の位置指定として不正であった場合は例外 Invalid_argument を発生します。

val uppercase : string -> string

引数の文字列をコピーして、小文字 (ISO Latin-1 (8859-1) 文字集合のアクセント付き文字も含む) をすべて大文字に変換して返します。

val lowercase : string -> string

引数の文字列をコピーして、大文字 (ISO Latin-1 (8859-1) 文字集合のアクセント付き文字も含む) をすべて小文字に変換して返します。

val capitalize : string -> string

引数の文字列をコピーして、先頭文字を大文字にして返します。

val uncapitalize : string -> string

引数の文字列をコピーして、先頭文字を小文字にして返します。

type t = string

string型へのエイリアスです。

val compare : t -> t -> int

compareと同じ動作をする比較関数です。型tとcompare関数によって、StringモジュールをSet.MakeやMap.Makeファンクタに渡すことができます。

新規 編集 添付