ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

桁数揃えで予定外の動作

C#のプログラムで、複数の文字列をそれぞれ指定の桁数にそろえて、連結する仕様がありました。

検索したら、文字列にはPadRightメソッドがあったので、これを使うことにしました。

data1.PadRight(6, ' ');

と記述するだけで、全体が6文字になるように末尾にスペースを追加してくれます。

このメソッドを使って動作を確認したところ、期待通りの文字列になっている場合と、スペースが余分に追加されている場合の両方がありました。
スペースが余分に追加されている場合も、法則性がよくわかりません。

どういうことだろうと調べていると、連結前の文字列の末尾にスペースが含まれていると、その分は長さ調整の対象外になっているため、スペースが余分に追加されているように見えていました。

桁数を揃える文字列はメソッドのパラメータとして渡されるので、渡す前にTrimメソッドでスペースを取り除くようにしたところ、期待した通りの文字列に全てなりました。

データにスペースが含まれる可能性を考慮していなかったので、悩む結果となっていました。