format:右寄せしたい - lisp-cookbook-ja/common-lisp GitHub Wiki

** 行幅16で右寄せ

(format nil "~16@A" "foo")
;=>  "             foo"

10進の数字の場合

(format nil "~16D" 10)
;=>  "              10"

16進の数字の場合

(format nil "~16X" 10)
;=>  "               A"

2進

(format nil "~16B" 10)
;=>  "            1010"

8進

(format nil "~16O" 10)
;=>  "              12"

2〜36進

(format nil "~7,16R" 10)
;=>  "              13"

浮動小数点数

(format nil "~16F" 10)
;=>  "            10.0"

浮動小数点数の指数表記

(format nil "~16E" 10)
;=>  "           1.e+1"

読み取り可能なS式

(format nil "~16@S" '("foo"))
;=>  "         (\"foo\")"

行幅16で右寄せ 埋め草文字は "."

(format nil "~16,,,'.@A" "foo")
;=>  ".............foo"

10進の数字の場合

(format nil "~16,'.D" 10)
;=>  "..............10"

16進の数字の場合

(format nil "~16,'.X" 10)
;=>  "...............A"

2進

(format nil "~16,'.B" 10)
;=>  "............1010"

8進

(format nil "~16,'.O" 10)
;=>  "..............12"

2〜36進(例では7進)

(format nil "~7,16,'.R" 10)
;=>  "..............13"

浮動小数点数

(format nil "~16,,,,'.F" 10)
;=>  "............10.0"

浮動小数点数の指数表記

(format nil "~16,,,,,'.E" 10)
;=>  "...........1.e+1"

読み取り可能なS式 (余計なものを付けるので当然ながら読み戻せない)

(format nil "~16,,,'.@S" '("foo"))
;=>  ".........(\"foo\")"