C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 空白文字埋めについて


(過去ログ 11 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■2505 / inTopicNo.1)  空白文字埋めについて
  
□投稿者/ めぐみ (3回)-(2007/04/11(Wed) 09:29:48)

分類:[C# (Windows)] 

おはようございます。めぐみと言います。

ある文字列に半角全角が混在していて、20バイトになるまで右に半角スペースを
入れようと思っています。PadRightは文字でカウントされるので
string aaa = "123あいう";
の文字列だと
「"123あいう "」となってしまいます。
「"123あいう "」とするにはどの様な実装をすれば良いのでしょうか?
バイトに変換する所までは何となく分かるのですが・・・。

皆様、宜しくお願い致します。
引用返信 編集キー/
■2506 / inTopicNo.2)  Re[1]: 空白文字埋めについて
□投稿者/ Blue (294回)-(2007/04/11(Wed) 09:42:37)
http://jeanne.wankuma.com/tips/string/lenb.html
を参考にしてください。
引用返信 編集キー/
■2507 / inTopicNo.3)  Re[1]: 空白文字埋めについて
□投稿者/ επιστημη (457回)-(2007/04/11(Wed) 09:48:49)
επιστημη さんの Web サイト
> ある文字列に半角全角が混在していて、20バイトになるまで右に半角スペースを
> 入れようと思っています。

shift_jis換算でのバイト数がわかればいいのかしら。ならば:

public class Program {
  public static void Main() {
    System.Console.WriteLine(input.Length);
    System.Text.Encoding sjis = System.Text.Encoding.GetEncoding("shift_jis");
    System.Console.WriteLine(sjis.GetByteCount("abcあいう"));
  }
}

引用返信 編集キー/
■2509 / inTopicNo.4)  Re[2]: 空白文字埋めについて
□投稿者/ めぐみ (5回)-(2007/04/11(Wed) 10:05:36)
皆様、すみません。
補足します。
コメントに書いた空白文字が消えてしまって、分かりにくくなってました。
最初に
string aaa = "123あいう";
aaa.PadRight(20,char(" "));
と実装したら「う」の後ろに14文字の半角スペースが入りました。これだと23バイトですよね。
20バイトで表現したいので「う」の後ろに11文字の半角スペースを入れたいのです。
11文字の空白を入れる実装方法が分からないのです。

表現が下手ですみません。
引用返信 編集キー/
■2510 / inTopicNo.5)  Re[3]: 空白文字埋めについて
□投稿者/ よねKEN (31回)-(2007/04/11(Wed) 10:32:23)
よねKEN さんの Web サイト
2007/04/11(Wed) 10:37:14 編集(投稿者)

> 11文字の空白を入れる実装方法が分からないのです。

こなれた方法を知らないとしても
for文で必要な数になるまで1文字ずつ半角スペースをくっつければできますよね?

また、もっと都合のよい方法としては、
Stringクラスのコンストラクタを使う方法があります。
ヘルプを調べてみてください。

引用返信 編集キー/
■2511 / inTopicNo.6)  Re[3]: 空白文字埋めについて
□投稿者/ επιστημη (458回)-(2007/04/11(Wed) 10:46:39)
επιστημη さんの Web サイト
> string aaa = "123あいう";
> aaa.PadRight(20,char(" "));
> と実装したら「う」の後ろに14文字の半角スペースが入りました。これだと23バイトですよね。
> 20バイトで表現したいので「う」の後ろに11文字の半角スペースを入れたいのです。
> 11文字の空白を入れる実装方法が分からないのです。

いや、だから、aaaの「shift_jis換算でのバイト数」がわかれば、20から
そのバイト数引いたのをPadRightの第一引数に与えりゃええべ?

string aaa = "abcあいう";
string result = aaa.PadRight(20 - 
                      System.Text.Encoding.GetEncoding("shift_jis").GetByteCount(aaa), ' ');

引用返信 編集キー/
■2515 / inTopicNo.7)  Re[1]: 空白文字埋めについて
□投稿者/ めぐみ (6回)-(2007/04/11(Wed) 11:49:50)
皆様、ご教授ありがとうございました。
何とか解決しました。
勉強不足でご迷惑をおかけしたました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -