PowerShell: 0パディング(0埋め)の方法。1 → 001
PowerShellで0パディング(0埋め)する方法を紹介します。
例えば、数値「1」の先頭に0を付けて3桁の「001」にしたり、
文字列「"1"」を「001」にする方法です。
ここでは数値と文字列の場合に分けて解説します。
数値の0パディング
数値を0パディングする場合は「フォーマット演算子(-f)」を使用します。
整数の場合と浮動小数点数の場合をそれぞれ紹介。
整数
コロン(:)の後に0埋めする桁数を指定します。 「000」を指定すると3桁、数が多い場合は「D5」のように「D桁数」と指定することも可能です。 書式指定のフォーマットは.NET Frameworkのフォーマットに準拠します。
# 整数 $num = 1 # 3桁 $s3 = "{0:000}" -f $num $s3 # 4桁 $s4 = "{0:0000}" -f $num $s4 # 5桁 $s5 = "{0:D5}" -f $num $s5
実行結果
001 0001 00001
浮動小数点数
浮動小数点数の場合は、 コロンの右側で「0.00」のように小数点以下を何桁にしたいか指定します。
# 浮動小数点数 $flo = 1.1 # 小数点以下2桁 $f2 = "{0:0.00}" -f $flo $f2 # 小数点以下3桁 $f3 = "{0:0.000}" -f $flo $f3 # 整数部分3桁+小数点以下2桁 $f3_2 = "{0:000.00}" -f $flo $f3_2
実行結果
1.10 1.100 001.10
文字列の0パディング
上で使用したフォーマット演算子(-f)は数値に対して使用できる演算子で、
文字列に対しては機能しません。
文字列を0埋めするには2つの方法があります。
- 文字列を数値に変換してフォーマット演算子を使う
- PadLeftメソッドを使用する
それぞれの方法を解説します。
文字列を数値に変換してフォーマット演算子を使用
文字列を整数に変換する場合は角括弧を使って「[int]変換対象」 と記述すると整数に変換できます。
コードは次のようになります。
$a = "1" # 文字列 $s3 = "{0:000}" -f [int]$a $s3
実行結果
001
PadLeftメソッドを使用
PadLeftは.NET Framework Stringクラスのメソッドで、 文字列の左側に任意の文字列を埋め込むことができます。 埋め込む文字列に"0"を指定することで0埋めになります。
書式
文字列.PadLeft(全体文字数 [, 埋め込む文字])
PadLeftを使って0埋めするコードは次の通りです。
$a = "1" #文字列 $s3 = $a.PadLeft(3, "0") $s3 $s4 = $a.PadLeft(4, "0") $s4
実行結果
001 0001