VS2008 扩展方法很不错

本文介绍了一种截取字符串的方法,该方法能够处理包含双字节字符的情况,并提供了一个获取字符串字节长度的实用函数。适用于需要对字符串进行特定字节数量截断的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         #region 截取字符串的前几字节(当遇到双字节时,则去掉最后一个字节)
        
/// <summary>
        
/// 截取字符串的前几个字节(当遇到双字节时 如:"中国" 截取3个字节,则变成 "中"
        
/// </summary>
        
/// <param name="s">字符串</param>
        
/// <param name="cutcount">字节</param>
        
/// <param name="outstr"></param>
        
/// <returns></returns>

        public static string ToCutString(this string s, int cutcount, string outstr)
        
{
            
if (s == nullreturn "";
            cutcount 
= System.Math.Abs(cutcount);
            
if (cutcount >= s.ToByteLenth())
            
{
                
return s;
            }

            
else if (cutcount <= 0)
            
{
                
return "";
            }

            
//============================
            for (int i = 0; i < cutcount; i++)
            
{
                
if (s.Substring(i, 1).ToByteLenth() == 2)
                
{
                    cutcount 
-= 1;
                }

            }

            
return s.Substring(0, cutcount) + outstr;
        }

        
#endregion


        
#region 得到字符串的字节长度
        
/// <summary>
        
/// 得到字符串的字节长度(null返回0)
        
/// </summary>
        
/// <param name="s"></param>
        
/// <returns></returns>

        public static int ToByteLenth(this string s)
        
{
            
if (s == nullreturn 0;
            
return Encoding.Default.GetBytes(s).Length;
        }

        
#endregion

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值