Next: Formatting Strings, Previous: Text Comparison, Up: Strings and Characters [Contents][Index]
このセクションでは文字、文字列、整数の間で変換を行なう関数を説明します。format
(Formatting Stringsを参照)とprin1-to-string
(Output Functionsを参照)もLispオブジェクトを文字列に変換できます。read-from-string
(Input Functionsを参照)は、Lispオブジェクトの文字列表現をオブジェクトに“変換”できます。関数string-to-multibyte
とstring-to-unibyte
は、テキスト表現を文字列に変換します(Converting Representationsを参照)。
テキスト文字と一般的なインプットイベントにたいするテキスト記述を生成する関数(single-key-description
とtext-char-description
)については、Documentationを参照してください。これらの関数は主にヘルプメッセージを作成するために使用されます。
この関数はnumberの10進プリント表現からなる文字列をリターンする。引数が負ならリターン値はマイナス記号から開始される。
(number-to-string 256) ⇒ "256"
(number-to-string -23) ⇒ "-23"
(number-to-string -23.5) ⇒ "-23.5"
int-to-string
はこの関数にたいする半ば廃れたエイリアスである。
Formatting Stringsの関数format
も参照されたい。
この関数はstring内の文字の数値的な値をリターンする。baseが非nil
なら値は2以上16以下でなければならず、整数はその基数に変換される。baseがnil
なら基数に10が使用される。浮動少数点数の変換は基数が10のときだけ機能する。わたしたちは浮動小数点数にたいして他の基数を実装しない。なぜならこれには多くの作業を要し、その割にその機能が有用には思えないからだ。stringが整数のように見えるが、その値がLispの整数に収まらないほど大きな値なら、string-to-number
は浮動小数点数の結果をリターンする。
パースでは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
string-to-int
はこの関数にたいする半ば廃れたエイリアスである。
この関数は1つの文字characterを含む新しい文字列をリターンする。関数string
のほうがより一般的であり、この関数は半ば廃れている。Creating Stringsを参照のこと。
この関数はstringの最初の文字をリターンする。これはほとんど(aref string
0)
と同じで、例外は文字列が空のときに0をリターンすること(文字列の最初の文字がASCIIコード0のヌル文字のときも0をリターンする)。この関数は残すのに充分なほど有用と思えないければ、将来削除されるかもしれない。
以下は文字列へ/からの変換に使用できるその他の関数です:
concat
この関数はベクターまたはリストから文字列に変換する。Creating Stringsを参照のこと。
vconcat
この関数は文字列をベクターに変換する。Vector Functionsを参照のこと。
append
この関数は文字列をリストに変換する。Building Listsを参照のこと。
byte-to-string
この関数は文字データのバイトをユニバイト文字列に変換する。Converting Representationsを参照のこと。