本節では、文字、文字列、および整数間の変換を行う関数について説明します。format(文字列の書式設定を参照)およびprin1-to-string(出力関数を参照)でも、Lispオブジェクトを文字列に変換できます。read-from-string(入力関数を参照)では、Lispオブジェクトの文字列表現をオブジェクトに変換できます。関数string-to-multibyteおよびstring-to-unibyteは、文字列のテキスト表現を変換します(テキスト表現の変換を参照)。
テキスト文字や一般的な入力イベント(single-key-description および text-char-description)のテキスト記述を生成する関数については、ドキュメントを参照してください。これらは主にヘルプメッセージの作成に使用されます。
この関数は、number を10進数で表記して出力した文字列を返します。引数が負の場合、返される値はマイナス記号で始まります。
(number-to-string 256)
⇒ "256"
(number-to-string -23)
⇒ "-23"
(number-to-string -23.5)
⇒ "-23.5"
int-to-string は、この関数の準廃止済みエイリアスです。
文字列の書式設定 の関数 format も参照してください。
この関数は、string に含まれる文字の数値を返します。base が nil 以外の場合、2 以上 16
以下(両端を含む)の整数である必要があり、整数はその基数で変換されます。base が nil の場合、10 進数が使用されます。浮動小数点数の変換は 10
進数でのみ動作します。浮動小数点数に対する他の進数の実装は、作業量が大幅に増える上に有用性も低いと考えられるため、行っていません。
パーサーは string の先頭にあるスペースやタブをスキップし、次に 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-number "1e5")
⇒ 100000.0
この関数は、1文字 character を含む新しい文字列を返します。string 関数の方がより汎用的であるため、この関数は半ば廃止されています。文字列の作成を参照してください。
この関数は string の先頭文字を返します。文字列が空の場合は 0 を返す点を除けば、ほぼ (aref string 0) と同様です。(string の先頭文字がヌル文字(ASCII コード
0)の場合も、値は 0 となります。)この関数は、保持するほど有用ではないと判断された場合、将来的に削除される可能性があります。
文字列への変換や文字列からの変換ができるその他の関数をいくつか紹介します。
concatこの関数は、ベクトルまたはリストを文字列に変換します。文字列の作成を参照してください。
vconcatこの関数は、文字列をベクトルに変換します。ベクトル用関数を参照してください。
appendこの関数は、文字列をリストに変換します。Consセルとリストの作成を参照してください。
byte-to-stringこの関数は、1バイトの文字データをユニバイト文字列に変換します。テキスト表現の変換を参照してください。