49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace 开发辅助工具.Manager
|
|||
|
{
|
|||
|
class TotalCount
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 返回字节数
|
|||
|
/// </summary>
|
|||
|
/// <param name="s"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public int GetByteLength(string s, out int HanziCount, out int engCount, out int NumCount)
|
|||
|
{
|
|||
|
int l = 0;
|
|||
|
char[] q = s.ToCharArray();
|
|||
|
HanziCount = 0;
|
|||
|
engCount = 0;
|
|||
|
NumCount = 0;
|
|||
|
for (int i = 0; i < q.Length; i++)
|
|||
|
{
|
|||
|
int qInt = (int)q[i];
|
|||
|
if (qInt >= 0x4E00 && qInt <= 0x9FA5) // 汉字
|
|||
|
{
|
|||
|
l += 2;
|
|||
|
HanziCount++;
|
|||
|
}
|
|||
|
else if ((qInt >= 97 && qInt <= 122) || (qInt >= 65 && qInt <= 90)) // 英文
|
|||
|
{
|
|||
|
l += 1;
|
|||
|
engCount++;
|
|||
|
}
|
|||
|
else if ((qInt >= 48 && qInt <= 57)) // 数字
|
|||
|
{
|
|||
|
l += 1;
|
|||
|
NumCount++;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
l += 1;
|
|||
|
}
|
|||
|
}
|
|||
|
return l;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|