Next: , Previous: , Up: Strings and Characters   [Contents][Index]


4.6 Conversion of Characters and Strings

このセクションでは文字、文字列、整数の間で変換を行なう関数を説明します。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を参照してください。これらの関数は主にヘルプメッセージを作成するために使用されます。

Function: number-to-string number

この関数はnumberの10進プリント表現からなる文字列をreturnします。引数が負の場合、return値はマイナス記号から開始されます。

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

int-to-stringは、この関数にたいする半ば廃れた(semi-obsolete)エイリアスです。

Formatting Stringsの関数formatも参照してください。

Function: string-to-number string &optional base

この関数はstring内の文字の数値的な値をreturnします。baseが非nilの場合、値は2以上16以下でなければならず、整数はその基数に変換されます。basenilの場合、基数に10が使用されます。浮動少数の変換は基数が10のときだけ機能します。わたしたちは浮動小数点数にたいして他の基数を実装していません。なえならこれには多くの作業が必要で、その割にその機能が有用には思えないからです。stringが整数のように見えるが、その値がLispの整数に収まらないほど大きな値の場合、string-to-numberは浮動小数の結果をreturnします。

解析ではstringの先頭にあるスペースとタブはスキップして、それから与えられた基数で数字として解釈できるところまでstringを読み取ります(スペースとタブだけではなく、先頭にある他の空白文字を無視するシステムもあります)。stringを数字として解釈できない場合、この関数は0をreturnします。

(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は、この関数にたいする半ば廃れたエイリアスです。

Function: char-to-string character

この関数は、1つの文字characterを含む新しい文字列をreturnします。関数stringのほうがより一般的なので、この関数は半ば廃れています。Creating Stringsを参照してください。

Function: string-to-char string

この関数は、stringの最初の文字をreturnします。これはほとんど(aref string 0)と同じで、例外は文字列が空のときに0をreturnすることです(文字列の最初の文字がASCIIコード0のヌル文字のときも、0をreturnします)。この関数は、残すのに充分なほど有用と思えない場合、将来削除されるかもしれません。

以下は、文字列へ/からの変換に使用できる、その他の関数です:

concat

この関数はベクターまたはリストから文字列に変換します。Creating Stringsを参照してください。

vconcat

この関数は文字列をベクターに変換します。Vector Functionsを参照してください。

append

この関数は文字列をリストに変換します。Building Listsを参照してください。

byte-to-string

この関数は文字データのバイトをユニバイト文字列に変換します。Converting Representationsを参照してください。