分かりやすく、使いやすく。

左側をゼロ埋めして固定長の文字列にする方法

スポンサーリンク

左側をゼロ埋め(ゼロパディング)して固定長の文字列にするには、 -f を使用する方法と PadLeft を使用する方法があります。

  1. -f を使用する方法
  2. PadLeft を使用する方法


-f を使用する方法

-f はカスタム数値書式指定文字列を使用して書式設定できます。左側をゼロ埋めして 10 桁の文字列を作成するサンプルコードと実行結果は次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
$int1 = 123
$int2 = 3456789
 
$str1 = "{0:0000000000}" -f $val1 # 文字埋め後の桁数だけ0を記述する
$str2 = "{0:D10}" -f $val2        # Dの後ろにゼロ埋め後の桁数を記述する
 
Write-Host $str1 #0000000123
Write-Host $str2 #0003456789 
0000000123
0003456789 

-f に文字列を渡すとゼロ埋めはされない為、注意が必要です。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 値が文字列だと -f ではゼロ埋めされない
$val1 = '123'
$val2 = '3456789'
 
$str1 = "{0:0000000000}" -f $val1
$str2 = "{0:D10}" -f $val2
 
Write-Host $str1 #123
Write-Host $str2 #3456789
 
# [int]で数値型に変換すればゼロ埋めされる。
$str1 = "{0:0000000000}" -f [int]$val1
$str2 = "{0:D10}" -f [int]$val2
 
Write-Host $str1 #0000000123
Write-Host $str2 #0003456789 
123
3456789
0000000123
0003456789 

文字列をゼロ埋め(ゼロパディング)するには、後述する PadLeft を使用する方法があります。

PadLeft を使用する方法

PadLeft は第一引数に文字埋後の文字数を、第二引数に文字埋めする文字を指定します。サンプルコードと実行結果は次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
# 値が文字列だと -f ではゼロ埋めされない
$val1 = '123'
$val2 = '3456789'
$val3 = 'ABCDE'
 
# PadLeftは第一引数に文字埋後の文字数を、第二引数に文字埋めする文字を指定する
$str1 = $val1.PadLeft(10, '0')
$str2 = $val2.PadLeft(10, '0')
$str3 = $val3.PadLeft(10, '0')
 
Write-Host $str1 #0000000123
Write-Host $str2 #0003456789
Write-Host $str3 #00000ABCDE 
0000000123
0003456789
00000ABCDE 
スポンサーリンク
スポンサーリンク