formatについて調べてみた
formatメソッドは、指定したフォーマットに従って文字列を生成するためのメソッドです。これは、C言語のsprintf関数と同様の機能を持ち、数値や文字列を特定の形式で整形する際に非常に便利です。
基本的な使い方
formatメソッドは、以下のように使用します。
formatted_string = format(フォーマット文字列, 値1, 値2, ...)
例えば、整数を10進数で表示する場合は次のようになります。
number = 42
formatted_string = format("%d", number)
puts formatted_string # 出力: 42
フォーマット指定子
フォーマット文字列内で使用される%から始まる部分を「フォーマット指定子」と呼びます。主な指定子は以下の通りです。
%d または %i
:整数を10進数で表示します。
%b
:整数を2進数で表示します。
%o
:整数を8進数で表示します。
%x
:整数を16進数(小文字)で表示します。
%X
:整数を16進数(大文字)で表示します。
%f
:浮動小数点数を小数点形式で表示します。
%e
または %E:浮動小数点数を指数形式で表示します。
%s
:文字列を表示します。
%c
:整数を対応するASCII文字に変換して表示します。
フラグ
フォーマット指定子には、出力の形式を制御するためのフラグを付加できます。主なフラグは以下の通りです。
#
:2進数、8進数、16進数の表示で、それぞれ0b、0、0xなどのプレフィックスを付加します。
+
:数値の符号を常に表示します。正の数には+、負の数には-を付加します。
(スペース):正の数の場合、符号の代わりにスペースを付加します。
-
:指定した幅内で左寄せにします。
0
:指定した幅内で右寄せにし、空いた部分を0で埋めます。
例えば、整数を5桁の幅で表示し、空いた部分を0で埋める場合は次のようになります。
number = 42
formatted_string = format("%05d", number)
puts formatted_string # 出力: 00042
幅と精度
フォーマット指定子には、出力の幅や精度を指定することができます。幅は出力する文字数の最小値、精度は小数点以下の桁数などを指定します。
pi = 3.14159
formatted_string = format("%8.2f", pi)
puts formatted_string # 出力: 3.14
上記の例では、%8.2fは幅8文字、小数点以下2桁で浮動小数点数を表示する指定子です。幅が8文字に満たない場合は、左側にスペースが追加されます。
sprintfメソッドとの関係
formatメソッドは、sprintfメソッドのエイリアス(別名)です。つまり、formatとsprintfは同じ機能を持ち、どちらを使用しても結果は同じです。
まとめ
formatメソッドを使用することで、数値や文字列を柔軟に整形し、見やすい形式で出力することができます。フォーマット指定子やフラグを適切に組み合わせることで、さまざまな出力形式に対応できます。詳しい使用例や解説についての参考サイト↓
Discussion