yoshikazuendo
12/12/2013 - 2:53 AM

文字列から長さや、一部分を取得する。半角、全角を区別しない場合はString.Lengthで良いが、区別する場合はEncoding.GetByteCountでエンコーディングを使用した上で取得する必要がある。

文字列から長さや、一部分を取得する。半角、全角を区別しない場合はString.Lengthで良いが、区別する場合はEncoding.GetByteCountでエンコーディングを使用した上で取得する必要がある。

var test1 = "abcd12e";
var test2 = "abcd1e";

// 半角、全角を考慮しない場合はこれでOK。
Console.WriteLine(test1.Length); // 7
Console.WriteLine(test2.Length); // 6

// 半角、全角を考慮しない場合はこれでOK。
Console.WriteLine(test1.Substring(4, 2)); // "12"
Console.WriteLine(test2.Substring(4, 2)); // "1e"
var test1 = "abcd12e";
var test2 = "abcd1e";

// エンコーディングを定義する。 
var ecd = Encoding.Default;

// 半角、全角を区別する場合はこの方法で取得する。
Console.WriteLine(ecd.GetByteCount(test1)); // 7 
Console.WriteLine(ecd.GetByteCount(test2)); // 7 

// 半角、全角を区別する場合はこの方法で取得する。
Console.WriteLine(ecd.GetString(test1byte, 4, 2)); // "12"
Console.WriteLine(ecd.GetString(test2byte, 4, 2)); // "1"