C((zhi)切り取り中英語混合指定長さ文字列の例
using System.Text.RegularExpressions;
using System.Text;
/// <summary>
/// ( )
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static int StrLength(string str)
{
int len = 0;
byte[] b;
for (int i = 0; i < str.Length; i++)
{
b = Encoding.Default.GetBytes(str.Substring(i,1));
if (b.Length > 1)
len += 2;
else
len++;
}
return len;
}
/// <summary>
/// ( )
/// </summary>
/// <param name="str"></param>
/// <param name="length"></param>
/// <returns></returns>
static string StrCut(string str, int length)
{
int len = 0;
byte[] b;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
b = Encoding.Default.GetBytes(str.Substring(i, 1));
if (b.Length > 1)
len += 2;
else
len++;
if (len >= length)
break;
sb.Append(str[i]);
}
return sb.ToString();
}