测试了3种获取中英文混合字符串长度的方法

 
http://www.cnblogs.com/cest/archive/2004/12/01/71297.html

分别写了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;
}
  

2.GetGBLengthA()
/// <summary>
/// 风@((((( 
/// </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;
}

测试主程序:
static   void  Main( string [] args)
{
    StopWatch sw 
= new StopWatch();
    
string strData = "01234567890阿发端发;立法局阿;领导法拉第发端夫君阿;地方阿斗发狂三角枫哈萨克毒发啊发狂挥发可回到发阿克苏多幅阿抗倒伏阿括弧发狂复活卡哈喀什发咖啡阿卡罚款罚款发狂撒发狂撒发狂撒多幅阿卡大饭卡大发狂撒毒发阔的饭卡大饭卡大饭卡大饭卡大发狂撒多幅阿克苏大罚款毒发阔的发咔哒复活卡多幅卡多幅卡撒多幅卡撒多幅哈克三点会发阿抗倒伏阿克苏多幅阿卡饭卡大akdfhaksdjfha kdfa ";
    
forint 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() + " 毫秒");
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值