- PR -

C# String.PadLeftの指定文字数をbyteで指定したい

1
投稿者投稿内容
おちゃっこ
会議室デビュー日: 2007/10/26
投稿数: 1
投稿日時: 2007-10-26 13:40
例えば文字数が3の場合、残りの2つを指定された文字で埋めたい場合は、

String moji1 = "あいう";
//文字数5になるまで、左に@を追加
string moji2 = moji1.PadLeft(5,'@');

しかし、これだと全角半角問わずに文字数が指定されてしまいますので、
全角は2バイト半角は1バイトとして文字数を指定したい場合はどのように記述すればいいのでしょうか。

[ メッセージ編集済み 編集者: おちゃっこ 編集日時 2007-10-26 13:41 ]
まさる
ベテラン
会議室デビュー日: 2006/12/21
投稿数: 59
お住まい・勤務地: 越後の中ほど
投稿日時: 2007-10-26 14:02
この辺りの情報を参考に専用のメソッドを自作するしかないと思います。
コード:
string moji1 = "あいう";
string moji2 = MyPadLeft(moji1);  // 自作のPadLeftメソッド

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-26 16:29
今どきは System.Globalization.StringInfo クラスですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-10-27 10:42
サロゲートペアがきたら、どうするんだろう?
1

スキルアップ/キャリアアップ(JOB@IT)