はじめに 「右パディング」は“枠を決めて、左にそろえて並べる”技
左パディングが「右寄せ」だとしたら、
右パディングはその逆で「左寄せ」をきれいにそろえるためのテクニックです。
業務システムだと、例えばこんな場面でよく出てきます。
商品名を一定幅で左にそろえて表示したい
固定長ファイルで「名前は20文字、右側はスペース埋め」と決まっている
コードの後ろをスペースで埋めて、全体の長さをそろえたい
こういうときに使うのが 右パディング(Right Padding) です。
C# には、これを一発でやってくれる PadRight というメソッドが用意されています。
ここから、PadRight の基本、スペース埋めと任意文字埋め、固定長フォーマットでの使い方、
そして業務ユーティリティとしてのまとめ方まで、順番にかみ砕いていきます。
基本:string.PadRight で右パディングする
PadRight のシグネチャと意味
string 型には、次のようなメソッドがあります。
string s = "ABC";
string padded1 = s.PadRight(6); // 幅6、埋め文字はスペース
string padded2 = s.PadRight(6, '.'); // 幅6、埋め文字は '.'
C#PadRight には2つのオーバーロードがあります。
string PadRight(int totalWidth)
string PadRight(int totalWidth, char paddingChar)
C#意味はこうです。
totalWidth は「最終的にしたい文字列の長さ」です。paddingChar は「足りない分を右側に埋めるときに使う文字」です(省略時はスペース ' ')。
元の文字列がすでに totalWidth 以上の長さなら、そのまま返されます。
「切り捨て」はされない、というのが大事なポイントです。
スペースで右パディング(左寄せ表示)
まずはデフォルト(スペース埋め)の例を見てみます。
string s1 = "A";
string s2 = "AB";
string s3 = "ABC";
Console.WriteLine($"[{s1.PadRight(4)}]");
Console.WriteLine($"[{s2.PadRight(4)}]");
Console.WriteLine($"[{s3.PadRight(4)}]");
C#出力イメージはこうなります。
[A ]
[AB ]
[ABC ]
[ABCD] // もし "ABCD".PadRight(4) ならそのまま
左側に文字が寄り、右側がスペースで埋められているのが分かると思います。
コンソール表示や帳票で「文字列を左にそろえたい」ときに、とてもよく使います。
任意の文字で右パディングする
ドットやゼロなど、好きな文字で埋める
スペースではなく、任意の文字で右側を埋めたい場合は、
第二引数に埋め文字を渡します。
string s = "ABC";
Console.WriteLine(s.PadRight(8, '.')); // "ABC....."
Console.WriteLine(s.PadRight(8, '_')); // "ABC_____"
C#PadRight(8, '.') は「長さ8になるまで右側を ‘.’ で埋める」という意味です。
元の文字列が8文字以上なら、そのまま返されます。
固定長フォーマットでの使いどころ
固定長ファイルやレガシー連携では、
「名前は20バイト、足りない分はスペース埋め」
「コードは10文字、足りない分は右側をスペースで埋める」
といった仕様がよくあります。
例えば、商品名を20文字幅で左寄せしたい場合はこう書けます。
string name = "りんご";
string fixedName = name.PadRight(20, ' ');
// "りんご" の後ろにスペースが並び、全体で20文字になる
C#この fixedName をそのままファイルに書き出せば、
「商品名は20文字固定」という仕様を簡単に満たせます。
右パディングと左パディングの違いを整理する
どちらも「長さをそろえる」ための道具
左パディング(PadLeft)と右パディング(PadRight)は、
どちらも「文字列の長さをそろえる」ためのメソッドです。
違いは「どちら側に埋めるか」です。
左パディング
左側に埋める → 右寄せになる
例:"1".PadLeft(3, '0') → "001"
右パディング
右側に埋める → 左寄せになる
例:"A".PadRight(4, ' ') → "A "
見た目のイメージとしては、
右にそろえたい(数字の桁をそろえたい) → 左パディング
左にそろえたい(文字列を左に寄せたい) → 右パディング
と覚えておくと、迷いにくくなります。
業務ユーティリティとしてまとめる
null をどう扱うかを決めておく
業務コードでは、「null が来たらどうするか」を毎回悩みたくありません。
ユーティリティ側でルールを決めておくと、呼び出し側が楽になります。
例えば、「null は空文字として扱う」方針で書くとこうなります。
public static class RightPaddingUtil
{
public static string RightPadWithSpace(string? value, int totalWidth)
{
value ??= string.Empty;
return value.PadRight(totalWidth, ' ');
}
public static string RightPadWithChar(string? value, int totalWidth, char paddingChar)
{
value ??= string.Empty;
return value.PadRight(totalWidth, paddingChar);
}
}
C#使い方はこんな感じです。
Console.WriteLine($"[{RightPaddingUtil.RightPadWithSpace("A", 4)]"); // [A ]
Console.WriteLine($"[{RightPaddingUtil.RightPadWithSpace(null, 4)]"); // [ ]
Console.WriteLine($"[{RightPaddingUtil.RightPadWithChar("ABC", 6, '.')}]"); // [ABC...]
C#RightPadWithSpace という名前を見るだけで、「右側をスペースで埋めるんだな」と分かるのがポイントです。
固定長レコード用のヘルパーに組み込む
固定長ファイルを出力する処理では、
「項目ごとに幅とパディング方法が決まっている」ことが多いです。
例えば、こんな仕様を考えます。
顧客コード:10文字、右パディング(スペース)
顧客名:20文字、右パディング(スペース)
これをユーティリティで表現すると、こんなイメージになります。
public static class FixedLengthRecordBuilder
{
public static string BuildCustomerRecord(string customerCode, string customerName)
{
string codePart = RightPaddingUtil.RightPadWithSpace(customerCode, 10);
string namePart = RightPaddingUtil.RightPadWithSpace(customerName, 20);
return codePart + namePart;
}
}
C#こうしておくと、「仕様変更で顧客名が30文字になった」といったときも、
この1箇所を直すだけで済みます。
「長すぎる文字列」はどう扱うか
PadRight は切り捨てない
PadRight は、「足りないときだけ埋める」メソッドです。
元の文字列が totalWidth 以上の長さなら、そのまま返されます。
Console.WriteLine("ABCDEFG".PadRight(5)); // "ABCDEFG"(そのまま)
C#固定長ファイルなどで「必ず5文字以内にしたい、長すぎたら切り捨てたい」という要件がある場合は、
別途 Substring などで長さを制御する必要があります。
例えば、「左寄せで5文字にしたい(長すぎたら先頭5文字だけ)」というユーティリティはこう書けます。
public static string LeftAlignFixed(string? value, int totalWidth)
{
value ??= string.Empty;
if (value.Length > totalWidth)
{
value = value.Substring(0, totalWidth);
}
return value.PadRight(totalWidth, ' ');
}
C#これなら、
Console.WriteLine($"[{LeftAlignFixed("ABC", 5)]"); // [ABC ]
Console.WriteLine($"[{LeftAlignFixed("ABCDEFG", 5)]"); // [ABCDE]
C#のように、「長すぎる場合は切り捨て、それ以外は右パディング」という挙動を一箇所に閉じ込められます。
まとめ 「右パディングユーティリティ」は“左にそろえて、フォーマットを守るための小さな職人”
右パディングは、見た目は地味ですが、
文字列を左にそろえて見やすくする
固定長フォーマットの仕様を守る
コードや名前の「枠」をきっちりそろえる
といった場面で、業務システムを静かに支えてくれる存在です。
押さえておきたいポイントは、
PadRight(totalWidth) はスペース埋め、PadRight(totalWidth, c) で任意文字埋め
右パディングは「左寄せ」、左パディングは「右寄せ」というイメージで覚える
null の扱い(空文字にするなど)はユーティリティ側でルール化しておく
固定長レコードでは「幅+右パディング」をヘルパーに閉じ込めると保守しやすい
長すぎる文字列は PadRight では切り捨てられないので、必要なら別途 Substring で制御する
ここまで理解できれば、「なんとなく PadRight を使っている」段階から一歩進んで、
“フォーマットと見た目のルールをコードとしてきちんと表現する”
業務・実務で使える右パディングユーティリティを、自分の手で設計・実装できるようになっていきます。

