Go to the first, previous, next, last section, table of contents.

文字 や ストリングの変換

文字やストリングは、一方から他方に変換したり integer に変換することができま す。 format (セクション 5.3 [format]、ページ 45) や prin1-to-string (セクショ ン 16.2.1 [prin1-to-string]、ページ 134) を用いることで Lisp オブジェクトをス トリングに変換することができます。 read-from-string (セクション 16.1.1 [read- from-string]、ページ 129) を用いることで Lisp オブジェクトの print 表現をオブ ジェクトに変換することもできます。

(アーギュメントの文字の) Emacs 標準表記 (のストリング)を返す関数 single-key- description と text-char-description に関しては、チャプター 21 [ドキュメンテー ション]、ページ 193 を参照して下さい。これらの関数は(主に)オンラインドキュメン テーションで用いられます。

Function: char-to-string character

この関数は、 1 文字のストリングを新しく返します。 character modulo 256 の 値を用います。

  (char-to-string ?x)
  => "x"
  (char-to-string (+ 256 ?x)
  => "x"

Function: string-to-char string

この関数は、ストリングの最初の文字を返します。ストリングが empty の場合、0 を返します (これはストリングが文字 ASCII 0 で始まっている場合の結果と同じ になります)。

  (string-to-char "xyz")
  => 120
  (string-to-char "")
  => 0
  (string-to-char "\000")
  => 0

Function: int-to-string integer

この関数は、 integer の数字(訳注:digit)からなるストリングを返します。正の integer は符号を付けないストリングを返し、負の integer は - 符号を頭に付け たストリングを返します。

  (int-to-string 256)
  => "256"
  (int-to-string -23)
  => "-23"

Function: string-to-int string

この関数は、 string 中の文字を数字として読み込み、その integer 値を返しま す。

ストリングはその最初の文字から読み込まれ、数字でない文字になるまで読み込ま れます。最初の文字が数字(訳注:digit)でない場合、0 を返します。

  (string-to-int "256")
  => 256
  (string-to-int "25 is a perfect square.")
  => 25
  (string-to-int "X256")
  => 0

Function: format string &rest objects

この関数は、 objects の print 表現で(その)変換指示シーケンスを置き換えた string の文字からなるストリングを(新しく)返します。変換指示は(順に)それに

対するオブジェクトに対して用いられます。変換指示が余分に存在する場合、その 動きを予想することはできません。オブジェクトが余分に存在する場合、その分は 無視します。

文字 % が変換指示を始め、それに続く文字が "オブジェクトをどのように表現す るか" を示します。

   `s'
  オブジェクトの print 表現で置き換える。対応するオブジェクトが存在
  しない場合、empty ストリングを用いる。
   `b'
  integer の 2 進数表現で置き換える。 (しかし常に "b" のように見える
  が!!)
   `o'
  integer の 8 進数表現で置き換える。
   `d'
  integer の 10 進数表現で置き換える。
   `x'
  integer の 16 進数表現で置き換える。
   `c'
  オブジェクトがそれにマップする文字の print 表現で置き換える(この
  マッピングとは何??)。
   `%'
  % を 1つこのストリングに入れる。

これ以外の変換文字は `Invalid format operation' エラーになります。

これらの指示(訳注:specification)文字は全て、(そのオブジェクトに対して print しなくてはいけない文字の数の最小値を指定する) オプショナルな数値のプ レフィックスを(文字の前に)持つことができます。オブジェクトの print 表現が これより少ない数の文字しか含まない場合、スペースを詰めます。プレフィックス が正の場合、パディングを左側で行ない、負の場合、右側で行ないます。プレ フィックスが何であれ、切りつめ(訳注:truncate)を行なうことはありません。こ れにより、プログラマはそのオブジェクトの print 表現が何文字か知らなくても 相互の間隔を指定することができます。

  (format "The length of %s is: %d" '(a b c) (length '(a b c)))
  "The length of (a b c) is: 3"
  (format "The %% character %c has value %d" ?x ?x)
  => "The % character x has value 120"
  (format "
  The numbers: %5d and %8d enjoy %9s good %6s, while
  the numbers: %5d and %8d enjoy %9s good %6s."
     1 97 'drinking 'wines -564 12399876 'eating 'food)
  => "
  The numbers:     1 and        97 enjoy  drinking good  wines, while
  the numbers:  -564 and  12399876 enjoy    eating good   food.


Go to the first, previous, next, last section, table of contents.