/// <summary>
/// 获取字符串的总数(以英文字符为准,中文等字符按2英文字符计算)
/// </summary>
/// <param name="str">字符串</param>
/// <returns>返回字符串的总数</returns>
public int GetStringCount(string str)
{
Regex regex = new Regex("[/u4e00-/u9fa5]+", RegexOptions.Compiled);
char[] stringChar = str.ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = 0;
for(int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))
{
sb.Append(stringChar[i]);
nLength += 2;
}
else
{
sb.Append(stringChar[i]);
nLength = nLength + 1;
}
}
return nLength;
}
/// 获取字符串的总数(以英文字符为准,中文等字符按2英文字符计算)
/// </summary>
/// <param name="str">字符串</param>
/// <returns>返回字符串的总数</returns>
public int GetStringCount(string str)
{
Regex regex = new Regex("[/u4e00-/u9fa5]+", RegexOptions.Compiled);
char[] stringChar = str.ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = 0;
for(int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))
{
sb.Append(stringChar[i]);
nLength += 2;
}
else
{
sb.Append(stringChar[i]);
nLength = nLength + 1;
}
}
return nLength;
}
本文介绍了一种计算包含中文及其他特殊字符的字符串总长度的方法,通过使用正则表达式和StringBuilder来实现,对于中文字符计为两个英文字符长度。

被折叠的 条评论
为什么被折叠?



