パディング

文字列を指定した長さに揃えるために特定の文字を埋める処理。padStart や padEnd で実現する。

パディング (Padding) とは、文字列を指定した長さに揃えるために、先頭や末尾に特定の文字 (通常はスペースやゼロ) を埋める処理です。データの整形、表示の統一、固定長フォーマットへの変換など、プログラミングのさまざまな場面で使われる基本的な文字列操作です。たとえば、商品コード「42」を 6 桁に揃えて「000042」にする、月の数値「3」を「03」にするといった処理がパディングに該当します。

JavaScript では ES2017 で導入された padStart()padEnd() メソッドが利用できます。'5'.padStart(3, '0')'005' を返し、'hi'.padEnd(10, '.')'hi........' を返します。Python では str.zfill() でゼロ埋め、str.ljust()str.rjust() で任意の文字によるパディングが可能です。C 言語の printf 関数でも %05d のようなフォーマット指定子でゼロパディングを実現できます。JavaScript 実践テクニックの書籍でパディングの活用例を学べます。

ゼロパディングは日付や時刻のフォーマットで特に重要です。「2024-3-5」ではなく「2024-03-05」のように表記することで、文字列としてのソートが正しく機能し、表示の統一感も保たれます。ファイル名の連番 (file001.txt、file002.txt) でもゼロパディングが使われ、OS のファイル一覧で正しい順序で表示されるようになります。金融システムでは口座番号や取引番号のゼロ埋めが必須であり、固定長レコードの生成にもパディングは欠かせません。

パディングと混同されやすい概念として、CSS の padding プロパティがあります。CSS の padding は要素の内側の余白を指定するもので、文字列操作のパディングとは全く異なる概念です。また、暗号化における padding (PKCS#7 パディングなど) はブロック暗号のデータ長を調整するための処理であり、これも文字列のパディングとは目的が異なります。文脈に応じて正しい意味を判断する必要があります。

全角文字を含む文字列のパディングでは、表示幅と文字数の不一致に注意が必要です。全角文字は通常 2 文字分の表示幅を占めるため、単純な文字数ベースのパディングではテーブルやログ出力の桁が揃いません。East Asian Width プロパティを考慮した幅ベースのパディング関数を実装するか、専用のライブラリを使用する必要があります。データフォーマット処理の書籍で多言語対応のパディング手法が解説されています。

文字数カウントの観点では、パディングによって追加された文字も当然カウント対象になります。パディング前後で文字数がどれだけ変化するかを把握することは、固定長フォーマットの設計やバリデーションにおいて重要です。文字数カウントツールを使えば、パディング後の文字列が仕様で定められた長さに正しく揃っているかを簡単に確認できます。