Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
sprintf() / % 演算子
書式を指定して文字列を生成する関数とメソッドです。数値のゼロ埋めや小数点の桁数制御などに使われます。
構文
# Kernel#sprintf(またはformat)を使います。 sprintf(フォーマット文字列, 値, ...) format(フォーマット文字列, 値, ...) # % 演算子で簡潔に書けます。 フォーマット文字列 % 値 フォーマット文字列 % [値1, 値2, ...]
主なフォーマット指定子
| 指定子 | 概要 |
|---|---|
| %d | 整数を10進数で表示します。 |
| %f | 浮動小数点数を表示します。『%.2f』のように小数点以下の桁数を指定できます。 |
| %s | 文字列を表示します。 |
| %05d | 5桁になるよう0で左埋めします。 |
| %-10s | 10文字幅で左揃えにします(マイナスで左揃え)。 |
| %x | 整数を16進数で表示します。 |
| %b | 整数を2進数で表示します。 |
| %% | リテラルの『%』を表示します。 |
サンプルコード
# 整数のフォーマットです。
puts sprintf("%d", 42) # 42
puts sprintf("%05d", 42) # 00042(0埋め5桁)
puts sprintf("%+d", 42) # +42(符号を表示)
# % 演算子で同じことができます。
puts "%05d" % 42 # 00042
# 浮動小数点数のフォーマットです。
puts sprintf("%.2f", 3.14159) # 3.14(小数点以下2桁)
puts sprintf("%8.2f", 3.14) # " 3.14"(8文字幅)
# 文字列のフォーマットです。
puts sprintf("%s さんの点数は %d 点です。", "田中", 85)
# 田中 さんの点数は 85 点です。
# 複数の値を渡す場合は配列を使います。
puts "名前: %s, 年齢: %d" % ["佐藤", 30]
# 名前: 佐藤, 年齢: 30
# 16進数・2進数への変換です。
puts sprintf("%x", 255) # ff
puts sprintf("%X", 255) # FF
puts sprintf("%b", 10) # 1010
puts sprintf("0x%08x", 255) # 0x000000ff
# パーセント記号を表示します。
puts sprintf("消費税率は %d%% です。", 10) # 消費税率は 10% です。
概要
Rubyの『sprintf』(別名『format』)とC言語由来の書式指定子を使って、数値や文字列を特定のフォーマットに整形できます。『%』演算子は『sprintf』の糖衣構文で、コードを簡潔に書けます。
現代のRubyでは文字列補間(『"#{変数}"』)が一般的ですが、数値のゼロ埋めや小数点桁数の制御には『sprintf』の方が適しています。『%』演算子に複数の値を渡す場合は必ず配列で渡してください。配列でない単一の値を渡す場合(『"%s" % 変数』)は問題ありませんが、複数の場合は『"%s %s" % [値1, 値2]』と書く必要があります。
文字列のパディングには『center / ljust / rjust』も使えます。文字列の型変換については『to_i / to_f』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。