- 2014/12/21 06:49
C#、VB.NETで半角を1バイト、全角を2バイトとして、文字列のバイト数を取得するGetByteCountメソッドを作成しました。
StringUtility utility = new StringUtility();
utility.GetByteCount("1あいうえお");
実行結果:11
半角を1バイト、全角を2バイトは文字エンコーディングに「シフトJIS」を指定した場合ですが、もちろん他の文字エンコーディングにも対応しております。
たとえば全ての文字を2バイトで表すUnicodeを指定した場合は、
StringUtility utility = new StringUtility(Encoding.Unicode);
utility.GetByteCount("1あいうえお");
実行結果:12
となります。
以下のエリアではGetByteCountメソッドを実際に動かした時の挙動を確認できます。
GetByteCountメソッドのソースコードは以下になります。
/// <summary>
/// 文字エンコーディング
/// </summary>
private Encoding _myEncoding = Encoding.GetEncoding("Shift_JIS");
/// <summary>
/// 文字エンコーディング
/// </summary>
public Encoding MyEncoding
{
get
{
return this._myEncoding;
}
}
/// <summary>
/// コンストラクタ
/// </summary>
public StringUtility()
{
}
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="encoding">文字エンコーディング</param>
public StringUtility(Encoding encoding)
{
this._myEncoding = encoding;
}
/// <summary>
/// 文字列のバイト数を取得します
/// </summary>
/// <param name="target">対象の文字列</param>
/// <returns>文字列のバイト数</returns>
public int GetByteCount(string target)
{
return MyEncoding.GetByteCount(target);
}
※
Clipボタンをクリックすると、「StringUtility」というクラスがコピーされます。このソースを「StringUtility.cs」ファイルにコピーするとすぐご利用いただけます。