📝
Ruby 数字の頭に0とか+とかつけたいな...そんな時はsprintfメソッド使おう!
今日のアウトプットはsprintf
メソッドについてです。
ちょっと難解ですが、使い方のパターンがわかると文字列操作の幅が広がるメソッドかと思います。
使い方
書き方はsprintf( "フォーマット", 戻したい値 )
という形式です。
このフォーマット
の部分にフラグ、幅、指示子などを指定していきますが、これがちょっと難解。
ですので、使用例から学んでいくのが良いかなと思います。
s = 123
# 数字の頭に0をつけて4桁で表示する
# フラグ:0、幅、4、指示子:d(10進表現の整数)
irb(main):009:0> str = sprintf("%04d", s)
=> "0123"
# 数字の頭に+をつけて表示する
# フラグ:+、幅:指定なし、指示子:d
irb(main):010:0> str = sprintf("%+d", s)
=> "+123"
# 数字を5桁の右詰めにする
# フラグ:なし、幅:5、指示子:d
irb(main):011:0> str = sprintf("%5d", s)
=> " 123"
# 数字を5桁の左詰めにする
# フラグ:-、幅:5、指示子:d
irb(main):012:0> str = sprintf("%-5d", s)
=> "123 "
# 式展開みたいにも使える
# フラグ、幅:なし、指示子:d
irb(main):017:0> str = sprintf("%d月 %d日", 6, 28)
=> "6月 28日"
もっと詳しい内容はリファレンスマニュアルにて!
Discussion