💎
Ruby sprintfについて
概要
Rubyのsprintfについてまとめる
sprintfとは?
文字列をフォーマットしてくれる。
構文
sprintf(%[フラグ][幅][.精度]指示子, フォーマットしたい値)
※ []
は省略可能な項目です
フラグ
#, +, (半角スペース), -, 0の5種類がある。
値 | 意味 |
---|---|
(半角スペース) | 半角スペース埋め。省略可。 |
0 | 0埋め |
- | 左詰めで表示 |
+ | 正負の符号を表示 |
幅
フォーマット後の文字列の長さを指定。
精度
指示子が小数(f)の場合は、小数点以下の桁数を指定。
整数(bなど)の場合は、数値部分の桁数を指定。幅の残り分は空白で埋められる(例を参照してください)
指示子
型を指定。
値 | 意味 |
---|---|
s | 文字列 |
d | 整数(10進数) |
f | 小数 |
e | 指数 |
例
p sprintf("%+8.5d", 123) # " +00123"
項目 | 値 |
---|---|
フラグ | + |
幅 | 8 |
精度 | .5 |
指示子 | d |
フォーマット例
右詰めで出力
# 空白埋め
p sprintf('% 5d', 123) # " 123"
# 0埋め
p sprintf('%05d', 123) # "00123"
左詰めで出力
# "-"を指定
p sprintf('%-5d', 123) # "123 "
符号付きで出力
# "+"を指定
p sprintf('%+5d', 123) # " +123"
前後に文字列を付ける
p sprintf("%04d番です", 123) # "0123番です"
小数点を扱う
# (空白):空白埋め
# 8:8文字分の幅を取る(小数点"."も含む)
# .2:小数点以下2桁まで表示
# f:小数を扱う
p sprintf("% 8.2f", 123) # " 123.00"
整数を0埋めと空白埋めと符号付き
p sprintf("%0+8.4d", 123) # " +0123"
リファレンス
Discussion