Next: , Previous: Text Comparison, Up: Strings and Characters


4.6 文字と文字列の変換

本節では、文字や文字列と整数のあいだの変換関数について説明します。 formatprin1-to-string(see Output Functions)は、 Lispオブジェクトを文字列に変換するために使えます。 read-from-string(see Input Functions)は、 Lispオブジェクトの文字列表現をオブジェクトに『変換』できます。 関数string-make-multibytestring-make-unibyteは、 文字列のテキスト表現を変換します(see Converting Representations)。

テキスト文字と一般の入力イベントのテキスト表現を生成する関数 (single-key-descriptiontext-char-description)については、 See Documentation。 これらの関数は、主に、ヘルプメッセージの作成に使います。

— Function: char-to-string character

この関数は、1つの文字characterだけを含む新たな文字列を返す。 関数stringのほうがより汎用であるので、 この関数はほぼ廃れている。 see Creating Strings

— Function: string-to-char string

この関数は、stringの先頭文字を返す。 文字列が空であると関数は0を返す。 文字列stringの先頭文字が、ASCIIコードが0のナル文字であるときも、 値は0である。

          (string-to-char "ABC")
                65
          (string-to-char "xyz")
                120
          (string-to-char "")
                0
          (string-to-char "\000")
                0

この関数は、存続させるほど有用でなければ、将来、取り除くかもしれない。

— Function: number-to-string number

この関数は、numberの表示表現である文字列を返す。 numberは整数か浮動小数点数。 引数が負であれば値の文字列は符号で始まる。

          (number-to-string 256)
                "256"
          (number-to-string -23)
                "-23"
          (number-to-string -23.5)
                "-23.5"

int-to-stringは、この関数のほぼ廃れている別名。

Formatting Stringsformatも参照。

— Function: string-to-number string &optional base

この関数は、string内の文字群が表す数値を返す。 basenil以外ならば、これを基数として整数に変換する。 basenilならば10を基数とする。 浮動小数点数の変換はつねに10を基数とする。 浮動小数点数に対しては別の基数を実装していない。 作業量も多くそのわりには有用とも思えないからである。

解析するとき、stringの先頭にある空白やタブは無視し、 数と解釈できる限りをstringから読み取る。 (先頭の空白やタブ以外の他の白文字を無視するシステムもある。) 無視した白文字のあとの最初の文字が、数字文字、プラス記号、 マイナス記号でなければ、この関数は0を返す。

          (string-to-number "256")
                256
          (string-to-number "25 is a perfect square.")
                25
          (string-to-number "X256")
                0
          (string-to-number "-4.5")
                -4.5

string-to-intはこの関数の廃れた別名。

文字列へ/から変換するその他の関数を以下にあげておきます。

concat
concatは、ベクトルやリストを文字列へ変換する。 see Creating Strings
vconcat
vconcatは、文字列をベクトルへ変換する。 see Vector Functions
append
appendは、文字列をリストへ変換する。 see Building Lists