dポイントプレゼントキャンペーン実施中!

ある文字列をバイト数でパディングするにはどうしたらよいでしょうか?
文字数でのパディングは、
str.PadRight(10,' '); 
↑で可能ですが、バイト単位でのやり方がわかりません。
よろしくお願いします。

環境:VisualStudio 2005 C#

A 回答 (1件)

直接バイト単位でのパディングは出来ないと思いますので


一度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 );

といった具合でしょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!