- 締切済み
C# での文字列パディング
ある文字列をバイト数でパディングするにはどうしたらよいでしょうか? 文字数でのパディングは、 str.PadRight(10,' '); ↑で可能ですが、バイト単位でのやり方がわかりません。 よろしくお願いします。 環境:VisualStudio 2005 C#
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
直接バイト単位でのパディングは出来ないと思いますので 一度stringでパディングしてこれをバイト配列に取り込んで ArrayクラスのCopyメソッドコピーしてから char配列にデコード stringオブジェクトに構築 といった手順でしょう string ss = "あい"; // Shift-JISでエンコードして バイト配列を取得 byte[] by = System.Text.Encoding.GetEncoding(932).GetBytes(ss); byte[] by10 = new byte[10]; // バイト配列を10バイト分コピー Array.Copy( by, by10, 10 ); // 10文字分のchar配列を確保 char [] ch = new char[10]; // SHIFT-JISのデコーダを取得 System.Text.Decoder dec = System.Text.Encoding.GetEncoding(932).GetDecoder(); // バイト配列からchar配列に変換 int nchLen = dec.GetChars(by10, 0 , by10.Length, ch, 0 ); // char配列から文字列(string)に変換 string s = new string( ch, nchLen ); といった具合でしょう