测试了3种获取中英文混合字符串长度的方法
来源:互联网 发布:无锡网络卓越科技 编辑:程序博客网 时间:2024/05/29 20:01
http://www.cnblogs.com/cest/archive/2004/12/01/71297.html
分别写了3个函数:
1.GetGBLength()
2.GetGBLengthA()
3.GetGBLengthB
测试主程序:
分别写了3个函数:
1.GetGBLength()
/**//// <summary>
/// 菜菜写的
/// </summary>
private static int GetGBLengthC(string strData)
{
int iLen = 0;
if( strData!=null || strData!="")
{
try
{
iLen = System.Text.Encoding.Default.GetByteCount(strData);
}
catch{}
}
return iLen;
}
/// 菜菜写的
/// </summary>
private static int GetGBLengthC(string strData)
{
int iLen = 0;
if( strData!=null || strData!="")
{
try
{
iLen = System.Text.Encoding.Default.GetByteCount(strData);
}
catch{}
}
return iLen;
}
2.GetGBLengthA()
/**//// <summary>
/// 风@(((((
/// </summary>
private static int GetGBLengthA(string strData)
{
System.Text.Encoding encoder5 = System.Text.Encoding.GetEncoding("GB2312");
return encoder5.GetByteCount(strData);
}
/// 风@(((((
/// </summary>
private static int GetGBLengthA(string strData)
{
System.Text.Encoding encoder5 = System.Text.Encoding.GetEncoding("GB2312");
return encoder5.GetByteCount(strData);
}
3.GetGBLengthB
/**//// <summary>
/// 活靶子.Net
/// </summary>
private static int GetGBLengthB(string Str)
{
int intResult = 0;
foreach (char Char in Str)
{
if ((int)Char > 127)
intResult += 2;
else
intResult ++;
}
return intResult;
}
/// 活靶子.Net
/// </summary>
private static int GetGBLengthB(string Str)
{
int intResult = 0;
foreach (char Char in Str)
{
if ((int)Char > 127)
intResult += 2;
else
intResult ++;
}
return intResult;
}
测试主程序:
static void Main(string[] args)
{
StopWatch sw = new StopWatch();
string strData = "01234567890阿发端发;立法局阿;领导法拉第发端夫君阿;地方阿斗发狂三角枫哈萨克毒发啊发狂挥发可回到发阿克苏多幅阿抗倒伏阿括弧发狂复活卡哈喀什发咖啡阿卡罚款罚款发狂撒发狂撒发狂撒多幅阿卡大饭卡大发狂撒毒发阔的饭卡大饭卡大饭卡大饭卡大发狂撒多幅阿克苏大罚款毒发阔的发咔哒复活卡多幅卡多幅卡撒多幅卡撒多幅哈克三点会发阿抗倒伏阿克苏多幅阿卡饭卡大akdfhaksdjfha kdfa ";
for( int i=0; i<10; i++ )
strData +=strData;
GC.Collect();
sw.Reset();
GetGBLengthA(strData);
Console.WriteLine("GetGBLengthA() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
sw.Reset();
GetGBLengthB(strData);
Console.WriteLine("GetGBLengthB() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
sw.Reset();
GetGBLengthC(strData);
Console.WriteLine("GetGBLengthC() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
}
{
StopWatch sw = new StopWatch();
string strData = "01234567890阿发端发;立法局阿;领导法拉第发端夫君阿;地方阿斗发狂三角枫哈萨克毒发啊发狂挥发可回到发阿克苏多幅阿抗倒伏阿括弧发狂复活卡哈喀什发咖啡阿卡罚款罚款发狂撒发狂撒发狂撒多幅阿卡大饭卡大发狂撒毒发阔的饭卡大饭卡大饭卡大饭卡大发狂撒多幅阿克苏大罚款毒发阔的发咔哒复活卡多幅卡多幅卡撒多幅卡撒多幅哈克三点会发阿抗倒伏阿克苏多幅阿卡饭卡大akdfhaksdjfha kdfa ";
for( int i=0; i<10; i++ )
strData +=strData;
GC.Collect();
sw.Reset();
GetGBLengthA(strData);
Console.WriteLine("GetGBLengthA() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
sw.Reset();
GetGBLengthB(strData);
Console.WriteLine("GetGBLengthB() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
sw.Reset();
GetGBLengthC(strData);
Console.WriteLine("GetGBLengthC() Run Time: " + (sw.Peek() / (float)1000).ToString() + " 毫秒");
}
- 测试了3种获取中英文混合字符串长度的方法
- 3种获取中英文混合字符串长度的方法
- javascript获取中英文混合字符串的长度方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- PHP获取字符串中英文混合长度
- PHP获取字符串中英文混合长度
- iOS计算中英文混合字符串长度的方法
- 中英文字符串长度获取方法
- 中英文混合字符串判定长度方法
- 中英文混合字符串长度
- 几种获得中英文混合字符串长度方法的性能比较
- 计算中英文混合字符串的长度
- 计算中英文混合字符串的长度
- 有你才有温暖的家
- 观《本能II》后
- 不能一辈子做房奴
- 局域网实现两台数据库同步
- 无限级目录数据库结构与方法一例
- 测试了3种获取中英文混合字符串长度的方法
- ASP.NET设计中的性能优化问题
- ASP+ACCESS实现的无限级目录树
- 贷款利率又涨了,心情很沮丧!!
- 有你才有温暖的家
- 请教大家一个问题
- 在Struts和Hibernate之间搭起桥梁
- 记性不好之--记录session清理缓存的时间点
- javascript常用功能