您的位置:首页 > 编程语言 > C#

在C#中取得指定长度的字符串

2008-01-25 10:23 363 查看
我们知道,在C#(.Net)内部所使用Unicode来存储字符串,这样在处理字符串的时候偶尔会发生一些不爽的事情。比如,如果字符串中有中文字符,而我们想取得固定长度字符串就颇为麻烦,下面提供了一个解决方案。在这个方案中,我们实现了这么几个功能:

取得给出字符串靠左边的子串,子串的大小为为指定长度;
如果给出的字符串长度大于给出的长度,则在子串的末端加上“..”。
避免出现半个汉字的情况。

源码如下:


private string getLeftSubString(string content, int length)




...{


Encoding encoding = Encoding.GetEncoding("gb2312");


StringBuilder sb = new StringBuilder();


int totalLength = 0;


foreach (char contentChar in content)




...{




int size = encoding.GetByteCount(new char[] ...{ contentChar });


if (totalLength + size > length -2)




...{


sb.Append("..");


break;


}


sb.Append(contentChar);


totalLength += size;


}


return sb.ToString();


}



只是这个方法的效率可能不高,欢迎大家给出更好的解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: